With Xcode 14 and later, the App Store no longer accepts bitcode submissions from Xcode 14. If a project explicitly enables bitcode, Xcode will generate a warning message that says, "Building with bitcode is deprecated. Please update your project and/or target settings to disable bitcode.” The Xcode 14 release notes goes on to say that "the capability to build apps with bitcode will be removed in a future update."
If you use Xcode 14 or later, instead of using bitcode to capture symbolicated crash stacks from your release builds, we recommend using the automatic symbol uploading script to upload your build's symbols.
Bitcode is a feature that gives Apple the ability to re-compile iOS and tvOS applications for specific users' hardware. This provides a smaller download size for end users. For more about this process, see Apple's Bitcode and app thinning documentation. When Apple compiles an app, the dSYM files are also compiled. For New Relic to be able to symbolicate crashes of your Bitcode-enabled app, these dSYM files need to be downloaded from Apple and then uploaded to New Relic.
When a Bitcode-enabled app is uploaded to Apple for App Store review or ad-hoc distribution, dSYMs need to be manually downloaded from Apple and uploaded to New Relic to allow the mobile crash reports to be properly symbolicated. These dSYMs can be downloaded through the archives organizer in Xcode within several minutes of uploading the app. In this situation follow the procedures to find the archive and download dSYMs.
If an app is missing a dSYM file, you'll see three indicators in the mobile monitoring UI:
Banner notification: A banner warning appears on the Crash report page. The warning reads:We were unable to locate your dsym.
Upload prompt: from the Crash type summary page you will be automatically prompted to upload a dSYM file if it is missing.
Machine code: The crash stack trace on the Crash report page displays machine code and not a human-readable error message.
To download the dSYM files you need for your app:
- Log in to Apple App Store Connect.
- Select Apps > (select an app) > TestFlight.
- From the list of builds for your application, select the build number you need for the dSYM.
- From the Build Metadata tab, select Download dSYM.
Then, to upload the resulting zip file directly to New Relic:
- Follow the instructions to manually upload dSYM, and skip step 1.
- Unpack one dSYM contained in this zip file to retrieve a build UUID that you can upload. (Follow the last step in the manual upload instructions.)
Once New Relic receives the zip file, the build UUIDs for all other dSYMs contained in that zip file will be identified.
Use the app version and build number to identify the applicable app archive in the Xcode Organizer and download the dSYMs.
Using Xcode to download dSYMs: From the Archives tab, select the app and version/build, then select Download dSYMs.
- Open the Xcode Organizer: From the Xcode menu, select Window > Organizer > Archives > (select a mobile app).
- From Version, select the archive that matches the app version (listed first) and build number (following the app version in parentheses).
- Select Download dSYMs.
The dSYMs will be downloaded from Apple if available and if the file names contain a series of letters and numbers. If the dSYM files are named after the the dependencies in your project, the download will not be successful.
Once you have located the dSYMs, follow the instructions to upload a dSYM for each zipped dSYM.