iOS App Store Debug Symbols Not Generating

We’ve recently noticed that our uploads to the iOS App Store are no longer generating debug symbols - even with “Include bitcode for iOS content” and “Upload your app’s symbols to receive symbolicated reports from Apple” selected when archiving, no symbols appear in App Store Connect. Checking older builds, it seems like this stopped working in March.

Looking at our git history, we haven’t changed anything in our Projucer projects which indicate that they’d be the root of this problem - anyone know if there were additions or changes to Projucer which we’d have to add to our project to keep symbolicating for App Store upload?

I am facing similar problem. It seems symbols were generated up to a couple months back, but not on recent deployments. This is annoying, since bitecode regenerates dSYMs and so there’s no way of matching any crash reports sent by users.

i too am seeing this. i’m using xcode13 + juce develop.

FWIW, this problem is no longer affecting us on Xcode 10.3 and JUCE 5.4.3

would you mind sharing the settings of your xcode project file? also, are you uploading with bytecode?

bump - would anyone mind sharing working settings from an xcode project file that correctly generates symbols from crashes? this is a super slow process (make a change, submit to app store, wait 2 days, test, make another change, etc) and i’ve tried every suggestion i could find in this forum and so without luck :confused:

1 Like

following

Hey, sorry for the delay. It appears I was mistaken. It looked for a while like symbols were generating on the App Store (when using the “Include bitcode” upload option), but when we went to actually view crash reports, they wouldn’t symbolicate correctly - all function names were hidden. Not very helpful, of course.

We’ve been able to get the following working for builds using the “Include bitcode” option, but it’s still not ideal for several reasons, namely:

  1. It requires a bit of extra work (ok, not so big of a deal)
  2. It doesn’t correctly symbolicate App Extension (such as AUv3) stack traces, just Standalone apps (ok, big deal in our case)

If you want to use bitcode, you can do the following:

  1. Create an archive for the target all-generic iOS device and open it up in Finder (right-click the archive in the Xcode Organizer window)
  2. Create a directory called BCSymbolMaps in the archive, and then copy in the two *.bcsymbol maps from the MacOSX/Build/Release directory
  3. Upload the archive to the App Store with both “Include bitcode” and “Upload symbols” checked. When you view the build on App Store Connect, you should see that it “Includes Symbols” and has a link to “Download dSYMs”. These will symbolicate your crash reports, but again, only for Standalone App builds.

If you want to symbolicate for App Extensions such as AUv3, then it appears you have to do the following:

  1. Make sure that Xcode is generating dSYMs. Open the project file in Projucer and add this to Exporters/iOS/Release/Custom Xcode Flags: DEBUG_INFORMATION_FORMAT=dwarf-with-dsym, GCC_GENERATE_DEBUGGING_SYMBOLS=YES. Now save and reopen the project in Xcode and make sure that Debug Information Format is showing DWARF with dSYM file for the release build of all targets
  2. Create an archive for the target all-generic iOS device and open it up in Finder (right-click the archive in the Xcode Organizer window)
  3. Copy both dSYMs packages from the MacOSX/Build/Release directory into the dSYM directory in the newly built archive
  4. Upload the archive to AppStore connect, with “Include bitcode” disabled and “Upload symbols” enabled. Xcode should now automatically symbolicate crash reports

These approaches should work on an out-of-the-box Projucer project, at least on JUCE 5.4.3.

BTW, you shouldn’t need to wait the 2ish days for App Store approval - you can use TestFlight to do the testing right away, after uploading the build. This makes the testing process much quicker.

(Credit goes to my colleague Steve, for doing most of the investigation on this)

10 Likes

You’re a hero among mortals for sharing that!

@tlongabaugh trying this now, thanks so much!

i’m also wondering - if submissions without bitcode don’t work unless you copy the .dsym files over, i wonder if manually copying the generated .bcsymbolmap files into the BCSymbolMaps directory of the archive would help? i’ll try that next.

lol you already did that, nevermind :slight_smile: