fastlane: Automatically upload DSYM to Firebase/Crashlytics

New Issue Checklist

Issue Description

I want to automatically upload the .DSYM file to Firebase/Crashlytics.

My GoogleService-Info.plist is located at “${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist”

I’ve a RunScript Phase with: "${PODS_ROOT}/Fabric/run"

But it doesn’t upload the .DSYM file to the Firebase portal. Why? Can I resolve by using the upload_symbols_to_crashlytics lane? How can I configure the gsp_path?

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 28 (6 by maintainers)

Most upvoted comments

Running into the same problem as @Hans92 , where using a specific GoogleService-Info-X.plist, wondering if anyone else also running into same or have solution? The upload processes finishes without any errors, just doesn’t show up in Firebase Crashlytics.

Also experiencing this problem. Shell command exited with exit status instead of 0 is puzzling as there’s no error code to look up. I don’t have the invalid byte sequence errors though. No problems if I leave out the gsp_path.

My problem was using uploadDSYM file, from the Carthage distribution, instead upload-symbols, from the Pod distribution. Now it’s working fine.

Same here

I also have the same Issue! Why is the issue closed if so many people have a problem?

I also have this issue. I’m trying to use different name of the .plist file:

upload_symbols_to_crashlytics(
			gsp_path: Resources/GoogleService-Info-" + CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier) + ".plist"
			)

Also I’m getting: invalid byte sequence in UTF-8 but the upload looks good. The problem is dSYMs never reach Firebase.

Hi, if you were migrating from Fabric to Firebase then do check if CRASHLYTICS_API_TOKEN is being set as an env variable and unset it before running upload_symbols_to_crashlytics.

The issue for me was that if the upload_symbols binary is called with both the api token and gsp path then it seems to ignore the gsp path which makes it end up not uploading to Firebase.

I am also struggling to get this to work. I have a lane that looks like the following:

  desc "Fetch and upload dSYM files to Firebase Crashlytics"
  lane :refresh_dsyms_firebase do |options|
    download_dsyms(version: options[:version])        
    upload_symbols_to_crashlytics(gsp_path: "./App/GoogleService-Info.plist") 
    clean_build_artifacts
  end

After that I see:

[17:22:47]: invalid byte sequence in UTF-8 [17:22:47]: invalid byte sequence in UTF-8 [17:22:47]: invalid byte sequence in UTF-8

and one of these for every dSYM file: [17:22:48]: Shell command exited with exit status instead of 0. [17:22:48]: Uploading ‘70DBE65E-227E-3754-89F2-EEFA6B8EEC2F.dSYM’…

Any idea what I am missing from the process @MauriceArikoglu ?

Fixed by simply using upload_symbols_to_crashlytics(gsp_path: gsp_path) with gsp_path correctly configured.