All Collections
Advanced usage
Symbolicating an iOS crash
Symbolicating an iOS crash

Using your build's dSYM file to get the full stacktrace of your crashes

Jordi Giménez avatar
Written by Jordi Giménez
Updated over a week ago

Bugfender helps you collect application crashes so you can identify and fix them. However, the stack traces are sometimes obscured because the compiler has removed the symbols (the names of the objects and methods) to optimize the build.

The Bugfender SDK automatically symbolicates stack traces if the symbol information is embedded in the application. Usually, Debug and Release builds contain symbol information, but Archived builds do not.

If symbol information is missing, the stack trace will contain memory addresses (hex numbers like 0x010e8a3713) instead of method names. You can recover those method names with a dSYM file stored on the computer that archived the application (for example, the CI).

Here are the steps to find the dSYM file:

  • Open Xcode.

  • Select Window -> Organizer

Step 1
  • Right-click on Archive and select 'Show in Finder':

Step 3
  • Right-click again on the archive, and select 'Show Package Content':

Step 4
  • The package will contain dSYMs, Info.plist, and Products:

Step 5
  • The dSYMs folder contains the dSYM files of your project. Right-click on the folder and click Compress to create a ZIP archive and upload the archive to Bugfender.

Automatically uploading dSYMs

The SDK installation instructions include a sample script to upload dSYMs to Bugfender.

Alternatively, you can write your own script using the /api/upload-symbols endpoint. This can be used, for example, in your CI/CD process before releasing an application.

You can upload multiple dSYM files as a ZIP file. This endpoint is available to all users (it does not require a plan with API support). The access token is in the application Settings tab.

Troubleshooting

These are the most common reasons why symbolication doesn't work:

  • The dSYMs must match the application build. If you upload symbols from a different version, they will not work. If you upload symbols from the same version but a different build, they will also not work. Please note that the symbols and files are different each time a project is archived, even if the code didn't change.

  • The dSYMs directory containing all the symbols files must be zipped and uploaded as a single file. If you upload multiple files, only the last one will be used.

  • If you're debugging a hybrid application, you must upload three files separately: the iOS dSYM files, the Android mapping file, and the Javascript sourcemap files.

  • If you're using Bitcode (deprecated), the dSYM files on your computer will not work. You need to download them from App Store Connect, because the application is compiled again there and the dSYM files are different.

Did this answer your question?