• Log inFree account

Upload dSYM files

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.

New Relic provides a post-build script as part of the iOS agent's install process and the tvOS agent's install process. This script automatically uploads your app's dSYM files.

Automatic script

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.

If you see unreadable machine code in the Crashes page, your dSYM files may not be uploaded correctly. In some cases, you may need to manually upload dSYM files.

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.

Identify missing dSYMs

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.

Upload dSYM files through the mobile monitoring UI

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:

  1. Go to one.newrelic.com and click Mobile. Then select your app from the list.
  2. View Crash analysis.
  3. Select a specific crash from the Crash types list.
  4. Click Upload dSYM. You can either drag and drop your dSYMs directly, or select the file form your computer.

Manually upload dSYM files

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:

Troubleshooting

Auto-upload failure

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:

iOS-Agent-PostBuildScript-Example.png

Example: A successful dSYM upload in the Report Navigator.

Missing dSYMs

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.

Build settings:

Debug Information Format : Dwarf with dSYM File
Deployment Postprocessing: Yes
Strip Linked Product: Yes
Strip Debug Symbols During Copy : Yes
Copyright © 2022 New Relic Inc.