Firebase Crashlytics automatically processes your debug symbol (.dSYM) files to give you deobfuscated, human-readable crash reports.
Unfortunately, there are a few situations when dSYM uploads fail, usually because of unique project configurations or Bitcode in your app. When an upload fails, Crashlytics displays a "Missing dSYM" alert in the Firebase console to let you know that it can't display crash reports properly.
If you get that alert, there are two things you can try to resolve the issue: check that Xcode is producing the correct dSYM files and, if it is, run the dSYM upload script manually.
Check if Xcode is producing debug symbol files
More often than not, symbol files go missing because Xcode simply isn't producing them. Here's how to check if your project is generating dSYMs with every build:
- Open your project in Xcode, and select the project file in the Xcode Navigator.
- Select your main build target from the Select a project or target dropdown.
- Open the target's Build Settings tab.
- Click All near the top of the tab.
- Search for "debug information format".
- Set Debug Information Format to DWARF with dSYM File.
Once you've done that, build your app again and check the Firebase console to see if Crashlytics can find your dSYMs.
Run the upload symbols script manually
As a back-up, Crashlytics also includes upload-symbols
, a
script that you can call anywhere in your build process to upload your
dSYMs manually. The script provides more information about the upload process
and more robust error messaging.
upload symbols
script. That is, in the
following options to run the script, use
-a fabric-api-key
-gsp path/to/GoogleService-Info.plist
To run the upload-symbols
script, use one of the following
options:
Include the following line in your build process:
find dSYM_directory -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/Fabric/upload-symbols -gsp /path/to/GoogleService-Info.plist -p platform \{\}
Run the script directly from your terminal:
/path/to/pods/directory/Fabric/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
Run the script from an Xcode run script build phase:
"${PODS_ROOT}/Fabric/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
upload-symbols
without any parameters to get usage notes and additional instructions.