Xcode 14 how to upload dSYM to crashlytics
Asked Answered
Q

1

1

I have some problems with uploading dSYMs to crashlytics using Xcode 14. I saw a lot of similar questions and discussion on apple forum, but none if them are the same as my case.

Since in Xcode 14 bitcode is deprecated we can't download dSYMs from TestFlight. As i understand as long as flag "enable_bitcode" is set to no, dSYMs from my local archive (which was used to upload app to TestFlight) should be valid for crashlytics, but unfortunately there is a mismatch in dSYM uuid.

So in Firebase Console there is an information that for version X build Y there are missing dSYMs with UUID idX1 and idX2, but unfortunately when i check archive that was uploaded to Testflight there is no dSYMs with uuids idX1 or idX2.

Do i miss sth? I will appreciate any help.

Quartana answered 17/11, 2022 at 10:55 Comment(0)
I
0

When bitcode is disabled, these are usually the steps to follow:

  1. Make sure that Xcode is generating dSYMs.
  2. Follow these configuration steps to automatically upload dSYMs when building the app.
  3. Increase the version/build number (this is to easily distinguish the new tests).
  4. Do a small code change. This will trigger Xcode to generate a new UUID and related dSYMs.
  5. Build the app and cause a test crash following these steps.

If everything went well, the correct dSYMs should be uploaded to Crashlytics. But, if you see "missing dSYMs" for the this version/build number, it would be interesting to see if something went wrong when uploading the dSMYs.

Typically, the run script will do some validations but will do the upload asynchronously. To override this behavior and do it as part of the build process you can use this other run script:

"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/upload-symbols" --build-phase --debug

The --build-phase flag will indicate the script to upload the dSYMs during build time, this will make the build to take a bit longer but will give you the opportunity to obtain more information about this process. Also, the --debug flag will make the script to provide verbose output.

Things to look in these debug logs:

  1. The UUIDs of the dSYMs files.
  2. The App Id. Make sure this is the correct one. In some scenarios there can be multiple GoogleServices-Info.plist files and the script could be using the wrong file.
  3. Errors in the upload process.
Interloper answered 28/11, 2022 at 22:18 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.