Uploading symbol files

Native crash reports might contain missing symbols. If your project contains missing symbols, you can manually add application symbol files to your project. This will help you to better diagnose and fix problems.

If your crash and exception reports contain missing symbols, add application symbol files from the Cloud Diagnostics Dashboard.

To upload symbols:

  1. Open the Unity Dashboard.
  2. Select the project Cloud Diagnostics is enabled on.
  3. From the left navigation, select Cloud Diagnostics > Debugging Symbols.
  4. From the Debugging Symbols page, select Upload symbols and select a file from your computer.

When you upload new symbols, there is a short period between the upload and when they are available for use. Wait at least five minutes before submitting a new crash. When they have been processed, any new reports should be generated with the proper symbolication.

Finding and uploading missing iOS/OSX application symbols

When you build your application using Xcode, iOS/OSX places the symbols in a dSYM folder with a name similar to the following:

~/Library/Developer/Xcode/DerivedData/<build id>;/Build/Products/<build type>/appname.dSYM

A dSYM file is an ELF file that contains DWARF (debugging with attributed record formats) debug information for your application. DWARF is a debugging file format that supports source-level debugging.

To verify that the dSYM contains the correct UUID, run the dwarfdump command, and replace appname with the name of your application’s dSYM:

dwarfdump -u appname.dSYM/Contents/Resources/DWARF/appname

The following shows sample output from dwarfdump:

UUID: 5EEDCCD2-38E7-3E52-81EC-B90C7BCD6D91 (armv7) appname.dSYM/Contents/Resources/DWARF/appname

UUID: 583173FD-6697-3E3C-90DC-EA9147563A5B (arm64) appname.dSYM/Contents/Resources/DWARF/appname

Note: Dwarfdump is an application that prints DWARF information in a human-readable format. The output of dwarfdump reports the UUID in upper-case and with dashes. UUIDs are often displayed as all lower-case with no dashes. Either format can represent a UUID. For example, 5EEDCCD2-38E7-3E52-81EC-B90C7BCD6D91 and 5eedccd238e73e5281ecb90c7bcd6d91 represent the same UUID.

After locating the correct dSYM folder, zip the entire folder and upload it to the Cloud Diagnostics service using the Debugging Symbols tab on the Unity Dashboard.

iOS, Bitcode, and the App Store

When you build your iOS app with Bitcode enabled and submit it to the App Store, Apple post-processes your build and creates a new binary. The new binary has a new UUID and a new corresponding dSYM. In this case, you must download the dSYM from iTunes Connect. It’s available in iTunes Connect at My Apps > Activity > All Builds > (choose your build).

When you upload your app to the App Store, check Include bitcode for iOS content and Upload your app’s symbols to receive symbolicated reports from Apple to enable the App Store to generate a new dSYM with the correct symbols:

After downloading the new dSYM, verify that the UUID is correct using dwarfdump. Zip the file and upload it to the Cloud Diagnostics service through the Debugging Symbols tab.

For more information on symbolication, see Symbolicating Crash Reports on the Apple Developer website.

Note: When you upload a new dSYM lD, reports are not re-symbolicated. You must submit a new crash to generate a report using the new symbols.