iOS and FirebaseCrashlytics

mobiledevcookie picture mobiledevcookie · Mar 23, 2020 · Viewed 13.5k times · Source

I am trying to follow the instructions on Firebase Docs to upload missing required dSYMs. However I am stuck on running the uploader script.

In my build phases I have

"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols -gsp${SRCROOT}/GoogleService-Info.plist -p ios ${SRCROOT}/appDsyms"

When I try building the iOS app with this, I get the error:

line 4: /path/to/Pods/FirebaseCrashlytics/upload-symbols -gsp/path/to/GoogleService-Info.plist -p ios /path/to/appDsyms: No such file or directory

Command PhaseScriptExecution failed with a nonzero exit code

When I try running the script from the terminal I get the error:

No Google App ID or Google Services file provided

I have verified that I have a Google Services file and am able to run my project using other firebase services that rely on it. I used to be able to upload Dysm files directly into the Firebase Console, but that changes on March 1.

Should this command be run as an XCode script or a command from the terminal? And, more importantly, does anyone understand how to resolve this issue?

Answer

Vishal Sonawane picture Vishal Sonawane · May 12, 2020

As of May 2020:

After Fabrics shut down, many developers faced such issues because Fabric was automatically creating the script to upload dSYM files from Xcode and we never pay attention to it.

Now as Fabric is replaced with FirebaseCrashlytics, in order to achieve this automatic mechanism, you can create a new run script and paste this script there:

"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"

enter image description here

This script will get the dSYM files and upload them to firebase servers so that you can see the crashes.

For multiple Schemes:

If your project has multiple schemes, you can simply create multiple such scripts by changing the path to the Google Plist file.

NOTE: You can also manually upload the dSYM files using upload-symbols tool [Check here], but it's always better to automate the process wherever we can.

EDIT: July 2020: When you see missing dSYM files for the crash in the Crashlytics dashboard, instead of getting the email for it, you can upload the dSYM file for the build as soon as you submit it for Apple review or for testing via Test Flight.

Missing dSYM is shown because when bitCode is enabled, the App Store Connect process the binary post uploading it and generates a new dSYM file.

You can find the dSYM file from the Activity section in the App Store Connect.

enter image description here