Catch up on highlights from Firebase at Google I/O 2023. Learn more

Get readable crash reports in the Crashlytics dashboard

By default, Firebase Crashlytics automatically processes your debug symbol (dSYM) files to give you deobfuscated and human-readable crash reports. This behavior is set when you add a run script that initializes Crashlytics to your app's build phase.

Unfortunately, there are a few cases that could cause your dSYM upload to fail, such as bitcode in your app or other unique project configurations. This guide provides some ways to troubleshoot when Crashlytics can't locate your app's dSYM.

Check if Xcode is producing dSYMs

More often than not, dSYM files go missing because Xcode simply isn't producing them. When an upload fails, Crashlytics displays a "Missing dSYM" alert in the Firebase console. If you get this alert, first check that Xcode is producing the correct dSYM for every build:

  1. Open your project in Xcode and select the project file in the Xcode Navigator.

  2. Select your main build target.

  3. Open the target's Build Settings tab, then click All.

  4. Search for "debug information format".

  5. Set Debug Information Format to DWARF with dSYM File for all your build types.

  6. Rebuild your app.

Your crash reports should now appear in the Firebase console. If the problem persists or you encounter other errors, try locating your dSYM and uploading it to Crashlytics manually.

Locate your dSYMs

Sometimes Crashlytics can’t locate your app's dSYM due to bitcode configurations or the console's connectivity. When this happens, there are two additional ways you can troubleshoot:

Upload your dSYMs

To manually upload your dSYMs, you can use the console-based "Drag and Drop" option to upload a zip archive containing your dSYM files (go to Firebase console > Crashlytics > dSYMs tab).

Alternatively, as a back-up, Crashlytics includes an upload-symbols script that you can call from anywhere in your build process to manually upload your dSYM files. The script provides more information about the upload process and more comprehensive error messaging (for usage notes and additional instructions, run upload-symbols without any parameters).

When uploading bitcode dSYMs, it may be helpful to remove any Icon files in the zip archive by running:

cd appDsyms rm -rf $(find . | grep Icon)
# Enumerate all the dSYMs
upload-symbols ... $(ls)

To run the upload-symbols script, use either of the following options:

  • Include the following line in your build process:

    find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
  • Run the script directly from your terminal:

    /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs