Symbolication guide

Bugsnag supports symbolicating crash reports from client devices using the contents of your dSYM files.

The dSYM files can be uploaded using the dSYM Upload API. The method for uploading dSYMs varies depending on whether Bitcode is in use.

With Bitcode

If you have Bitcode enabled in your application’s project settings:

  1. Open the Xcode Organizer, select your app, then use “Download dSYMs…” to download the dSYM files.
  2. Upload the dSYM file to Bugsnag:

    curl https://upload.bugsnag.com/ -F dsym=@MyApp.app.dSYM/Contents/Resources/DWARF/MyApp
    

Without Bitcode

Without Bitcode enabled, the dSYM files for your application can be automatically uploaded by adding a build phase to your project.

Using cocoapods

If you are using CocoaPods, installing the cocoapods-bugsnag plugin will add the build phase when you run pod install.

Build phase upload

  1. From the same “Build Phases” screen, click the plus in the bottom right of the screen labelled “Add Build Phase”, then select “Add Run Script”
  2. Expand the newly added “Run Script” section, and set the shell to /usr/bin/ruby
  3. Copy the following script into the text box:
fork do
  Process.setsid
  STDIN.reopen("/dev/null")
  STDOUT.reopen("/dev/null", "a")
  STDERR.reopen("/dev/null", "a")

  require 'shellwords'

  Dir["#{ENV["DWARF_DSYM_FOLDER_PATH"]}/*/Contents/Resources/DWARF/*"].each do |dsym|
    system("curl -F dsym=@#{Shellwords.escape(dsym)} -F projectRoot=#{Shellwords.escape(ENV["PROJECT_DIR"])} https://upload.bugsnag.com/")
  end
end