Your app's dSYM files are stored in Xcode's dSYM archive path folder. This is the folder where the iOS agent gets the dSYM files that are used to symbolicate your crash reports.
The script automatically uploads dSYM files only for release builds. Non-release builds must upload their files either manually or through the mobile monitoring UI. Bitcode-enabled apps have their dSYM files generated by Apple. You must download the dSYM files for Bitcode-enabled apps from Apple and upload them to New Relic.
The automatic script uses Python 2. As of October 2019 with macOS 10.15 (Catalina), Python won't be installed by default. If you're using the automatic script (recommended), you may need to manually install Python 2. If you're using Homebrew, see Python on Homebrew.
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.
You can easily upload your dSYM files directly from the New Relic UI. The maximum file size is 600 MB. To upload your dSYM files:
- Go to one.newrelic.com and click Mobile. Then select your app from the list.
- View Crash analysis.
- Select a specific crash from the Crash types list.
- Click Upload dSYM. You can either drag and drop your dSYMs directly, or select the file form your computer.
In some circumstances, New Relic's automatic upload of dSYM files may fail. If a dSYM upload is attempted and fails, it creates a build error with a detailed message. For example, if there's a network failure and the dSYM upload isn't completed, Xcode will report an error. For additional information about how New Relic handles dSYM uploads, see New Relic's Online Technical Community.
If the automatic upload fails, you can manually upload your dSYM file. If you have multiple dSYM files, they can be within a single zip with a maximum file size of 600 MB. The YOUR_NEW_RELIC_APPLICATION_TOKEN value in the commands below is the same key used for
+[NewRelic startWithApplicationToken:] (in Objective-C) or
NewRelic.start(withApplicationToken:) (in Swift).
To manually upload your dSYM files:
If a dSYM auto-upload failed, the Report Navigator may have a fully formed cURL command. You can use this cURL command to reattempt an upload. Depending on the error, you may also need to follow some of the dSYM manual upload steps.
Here is an example of a successful dSYM upload in the Report Navigator:
Example: A successful dSYM upload in the Report Navigator.
If dSYM files are missing, you may need to check Xcode build settings to ensure the file is being generated. Frameworks which are built locally have separate build settings and may need to be updated as well.
Debug Information Format : Dwarf with dSYM FileDeployment Postprocessing: YesStrip Linked Product: YesStrip Debug Symbols During Copy : Yes