Download DSYMs from App Store Connect for TestFlight apps using bitcode

Description of the feature request

For release builds using Bitcode sent to TestFlight, DSYMs produced on Bitrise are useless for symbolicating crash reports (as bitcode apps are recompiled by the app store). The DSYMs required by crash reporting tools are therefore the ones downloadable via the App Store.

What’s needed is a build step that can wait for the app store to produce those DSYMs, and then download them in order to upload them onto crash reporting services.

Use case / for what or how I would use it

This is needed for every single iOS release build sent to TestFlight that makes use of crash reporting tools.

I’m experiencing a similar need, but I think the approach you’re suggesting wouldn’t work. Once the artifact is uploaded to the App Store, it then takes time (anywhere from 5 to 30 minutes in my experience) to process. For Bitrise.io to pull this down, the build would have to pause and wait until the processing was done only to pull it down again and then upload it.

IMHO, the preferred approach must be to create builds on Bitrise.io that don’t require additional processing. My scans of my own codebase reveal that all Bitcode flags are off, yet it still occurs. So there might be some other Xcode configuration I’m missing. To that end, having guidance form Bitrise.io on how to address this would be invaluable.

BTW. I may have resolved this. The xcode-archive step has two default parameters that are set to yes that I set to no.

  • compile_bitcode: “no”
  • upload_bitcode: “no”

I’m waiting to see if this results in a difference on my next builds, but wanted to share just in case. When we tested this, we now don’t have the option to download new dsym files from within App Store Connect, which should be a good thing. I imagine they only provide a download IF they recompiled or reprocessed those.

@rickmanelius If you set those flags to no you’re no longer using Bitcode, so it’s not really a solution.

Understood it’s not a solution if you need Bitcode. Others proposed a different path https://github.com/fastlane/fastlane/issues/16168#issuecomment-622162285.

Bitcode must be activated for tvOS and watchOS apps.
It’s probably a matter of time before it is mandatory for iOS.

The main use case to retrieve dsym from Apple is for Firebase Crashlytics (or other similar tools).

How about creating a workflow with 2 steps : First step “retrieve dsym from apple” and second step “Run crashlytics script” (which is just a ssh script).

And we can run this workflow automatically every week or so based on how often we release.

1 Like

We also would be really interested in having this step