8

Crashlytics has been installed in the app in question for a couple of releases now. It's been working great.

But as we prepare the next release Crashlytics has stopped reporting crashes in Release mode. Here are the things I can think of that have changed since our last release.

  • Xcode 7.1. The last release was prepared with Xcode 6.
  • We upgraded to Fabric.
  • We're testing the app on iOS 9.1.

Anyway, with all those changes crashes are still being reported just fine in Debug. Just not in Release (installing from TestFlight after archiving and uploading to iTunes Connect).

Here are the things I've checked:

  • On the Fabric site the app is there, the version and build are there. When I click on Missing DSYMs it tells me there are none missing.

  • startWithAPIKey is being called in didFinishLaunchingWithOptions (added after trojanfoe's question).

  • The api key is correct. Checked and double-checked.

  • In the build script there isn't (and never was) a distinction between Debug and Release. It looks like this:

enter image description here

  • In Build Settings DEBUG_INFORMATION_FORMAT is already set to DWARF with dSYM File (added after StormXX's question):

enter image description here

What am I missing?

Murray Sagal
  • 8,454
  • 4
  • 47
  • 48

5 Answers5

7

I was also facing this issue. My apps DSYMs files were not being automatically uploaded to Fabric as had previously been the case. The root cause was found to be that xcode 7.1 had defaulted the project to bitcode enabled = YES

Setting Bitcode enabled = NO in my Build Settings fixed the auto upload issue.

From Fabrics advanced set up document:

Bitcode enabled applications are required to download their dSYM from Xcode and then upload it to Crashlytics so that we can symbolicate the crashes.

upperlacon
  • 181
  • 8
  • Disabling bitcode is not the right way of solving the problem, it's like "killing a fly with a hammer". Bitcode is a great feature and you should use it. If you do, you're supposed to download the dSYM from iTunes Connect (or in Xcode's organiser) and upload it to Crashlytics - that's how you fix your missing symbols .) – Zoltán Jul 03 '16 at 13:09
  • It's part of App Thinning: > Bitcode is an intermediate representation of a compiled program. Apps you upload to iTunes Connect that contain bitcode will be compiled and linked on the store. Including bitcode will allow Apple to re-optimize your app binary in the future without the need to submit a new version of your app to the store. See: https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html – Zoltán Nov 15 '16 at 05:04
6

Mike from Crashlytics and Fabric here.

With Fabric, the initialization of Crashlytics did change slightly. Using the following code should work (Obj-C):

#import "AppDelegate.h"
#import <Fabric/Fabric.h>
#import <Crashlytics/Crashlytics.h>

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    [Crashlytics startWithAPIKey:@"YourAPIKey"];
    // You can comment out the above line if you have your Twitter Fabric API key in your info.plist.
    [Fabric with:@[[Crashlytics class]]];
    return YES;
}

Updating the run script build phase to the following is also recommended:

./Fabric.framework/run <YourAPIKey> <YourBuildSecret> 
Mike Bonnell
  • 16,181
  • 3
  • 61
  • 77
  • shouldn't this be notified when Crashlytics auto update? In which version changed? – jcesarmobile Nov 04 '15 at 08:07
  • After migrating to Fabric and updating to a more recent version of the Crashlytics SDK, then you'll be prompted to switch the run script. Also, with Fabric based on feedback from many developers, when changed the update flow to be completely in your control. Updates are not automatically applied. – Mike Bonnell Nov 04 '15 at 16:18
  • I started with fabric, but the [Fabric with...] I was told to use was different form this one you mention. Shouldn't worry then? – jcesarmobile Nov 04 '15 at 17:22
  • 1
    It's fine to an use an older version of the initialization. The one I provided will work for the latest version of the frameworks. – Mike Bonnell Nov 05 '15 at 14:11
1

I met the same problem and I sovle it... Check your project's Build Setting , find Debug Information Format. change it to DWARF with dSYM File

Image

StormXX
  • 11
  • 3
0

For me didn't help uploading dsym files from .xcarchive. Only when i've downloaded zip dSYM archive from the iTunesConnect and uploaded it to fabric - it make sense.

enter image description here enter image description here

Nike Kov
  • 12,630
  • 8
  • 75
  • 122
0

In my case, it was totally a different issue. Earlier I was getting all the crash reports perfectly but then due to some reasons, I have to update my bundle id of the project.

So If you update your bundle id then the project you have created on Fabric will not receive crash reports since you need to create one new project for that new bundle id.

Important: If bundle id is different on your fabric app then you will never receive any crash reports.

Tip: Create your projects in Fabric using the Fabric desktop application.

Prashant Gaikwad
  • 3,493
  • 1
  • 24
  • 26