Xcode Bitcode, Enabling Character Setting Effects to Generate dSYM

Since I use Crashlytics to handle my crashes, I always uncheck the box “Enable app symbols for your application to receive symbolic crash logs from Apple” and keep one checkbox “Enable bitcode” (future proof for Apple Watch) before sending my app to iTunes Connect:

Settings

Crashlytics has an article about a problem with Bitcode and missing dSYM:

https://docs.fabric.io/apple/crashlytics/missing-dsyms.html#bitcode-download

According to their screenshot for downloading the new generated dSYM file created by Bitcode, there is a download link available directly in iTunes Connect, BUT, it seems that you should have checked “Enable application symbols” to be able to download them, otherwise you just get the following:

No

So, I'm a little confused about how these two parameters are necessary for Crashlytics or any other crash handler to work correctly.

Should I check both parameters? Is it possible to uncheck the "Enable application symbols" box because I don’t use the Apple Crash organizer (in my opinion, dSYM files are uploaded to Crashlytics during the post-script archive) and only save the bitcode or if I do this, I can’t download new ones dSYM with a generated bit (causing Crashlytics problems symbolizing crashes)?

+2
source share
1 answer

That's a good question. There are many controls that affect the availability of debugging information for your application. This is confusing, and people constantly stumble over it.

Here are my recommendations:

  • always check the "include characters" field when sending apps to Apple.
  • always delete final executables (.app, .framework)
  • never crash your static libraries if you have
  • you want Apple crash reports to work even if you don't plan on looking at it.

In this configuration, your dSYMs created locally or by Apple will contain the debugging information necessary for Crashlytics and Apple to work. This is critical . You use Apple characters when using bit code. If you do not, you will probably never be able to see symbolic crashes for this version of your application.

There are, of course, some good reasons why you might not want to share characters with Apple. One of them is you want to confuse your code. I know a few applications that do this. Of course, this is a compromise, because it makes symbolism much more complicated or even impossible, depending on the obfuscation system.

There are also reasons why you may not want to remove your executable files. First, you rely on a third-party crash reporting system that does not support server-side symbology. This is getting smaller and smaller as far as I know, but this is what you need to know about.

Finally, you definitely want Apple's crash reporting system to work, even if you never plan to use it. Apple can more reliably fix more failures than any third-party solution. I'm sure this is also invaluable for Apple's internal work. It definitely has limitations, but it really doesn't cost anything. Therefore, keep it in working condition, if only for any reason, than to be able to look at it in the future.

+6
source

Source: https://habr.com/ru/post/1269924/


All Articles