Xcode Cloud build crashes in TestFlight

When using Xcode Cloud to build our app and distribute to TestFlight, the app crashes on Launch when installed from TestFlight. If I distribute from the same Xcode version (13 beta 5) from my own machine, it works as normal in TestFlight. It seems like Xcode Cloud might be signing the app wrong or something, but it is hard to tell when I can't control the signing myself. The logs I get from the crashes only say "abort() called".

Replies

Please post a fully symbolicated crash report. A call to abort() generally means there was an uncaught exception or something in your code that directly called abort().

Attached are what I could find. The fatal exception is what I get from Crashlytics, and the crash log is the only thing I could find related to this when looking at the device logs on my device. Again, these crashes only happen for the builds distributed from Xcode Cloud and not those distributed from Xcode on my machine.

Looking at the archive logs from Xcode Cloud, I can see a lot of Xcode couldn't find any iOS App Store provisioning profiles matching 'com.eeeeeee.wwwwwwvvvvvvv' for all the targets in IDEDistributionProvisioning.log

Without the full Apple crash log for your process, I can't be sure what's going on. Are Wwwwww and WwSwiftClient from your app? If you get a full Apple crash log for your app and see that it matches what is in the short snippet provided, then your code is calling into a system API, which threw an exception. That's an issue with your code calling the system API, and has nothing to do with any code signing in Xcode Cloud.

The full Apple crash log doesn't appear in the device logs on my device, which is why I thought it might be related to signing or something like that. The app has millions of users and works as expected when deployed using other CI's or locally, but when built with Xcode Cloud it crashes 100% of the times in TestFlight. All third party dependencies are checked into the repo, so there isn't really that much going on in the archive step that should fail or complicate things either. And nothing that should change the way our code run on device.