Symbolication

Explained here is how to symbolicate your crashes to get more details from stack traces for your iOS apps.

Symbolication is a required process to translate your crash reports into a readable format. For Luciq to be able to successfully symbolicate your crashes, make sure you always upload the needed dSYMs. Every new app version or build generates new files.

There are two types of dSYM files:

  1. Required dSYM files are used to symbolicate your application’s frames. In the screenshot below, only the required dSYM is missing.

  2. Optional dSYM files are used to symbolicate the frames belonging to any plugin or library you are using.

Using Manual Upload

First, you need to find the needed dSYM files on your machine. You can find the command below to find the file that belongs to a specific UUID.

mdfind "com_apple_xcode_dsym_uuids == your-UUID-here"

On your Luciq dashboard, you will find all your missing files and the commands needed to allocate the files locally as displayed below.

2163

An example warning message in the crashes page of your dashboard that alerts you about a required dSYM file that is missing.

After, finding the dSYM files locally, upload them to your dashboard as explained below:

  1. Compress the dSYM file you have located on your machine into a zip file.

  2. Go to Upload dSYMs in the Settings menu of your Luciq dashboardarrow-up-right.

  3. Upload the compressed file.

Using Xcode Build Phase Script

⚠️ Important: Disable User Script Sandboxing

Starting with recent versions of Xcode, a build setting called User Script Sandboxing is enabled by default for new projects.

This setting must be disabled for the Luciq dSYM upload script to run correctly

How to disable

  1. Open your project in Xcode

  2. Select your project → Build Settings

  3. Search for User Script Sandboxing

  4. Set User Script Sandboxing to NO

  5. Apply the setting to all relevant targets (Debug & Release)

Luciq has a shell script that can automatically upload your project's dSYM during the build process. To use it, go to your project's Build Phases tab and add a new Run Script Build Phase, then add the following to it.

Make sure you replace YOUR-APP-TOKEN-HERE with your actual app token (found under SDK Integration in the Settings menu of your Luciq dashboardarrow-up-right.

Using Fastlane

If you're already using Fastlane to automate your mobile development process, you can benefit from our Luciq/Fastlane plugin to automatically upload your dSYM file to Luciq.

Installing Fastlane

  1. If you don’t have Fastlane, open your terminal and navigate to your project then run the next command to install it:

  1. If you don’t have the latest Fastlane version installed, run the following command:

Installing Luciq Plugin

  1. Open your Gemfile inside your project directory and add the following:

  1. Run the following to install our official Fastlane plugin:

Using the Plugin

  1. With the plugin installed, you can navigate the project using Finder, open the Fastlane directory, then open the Fastfile.

  2. Inside the Fastfile, you can create a new lane and name it upload_dsyms, for example, then add the following inside your lane implementation:

  1. The final step is to run the following command:

POST API

In addition to the options explained above, you can use our POST API to upload your dSYM files directly from your console. The input file must be passed as a zip file.

Troubleshooting

Debug Builds

To enable crash symbolication for debug builds, you have to change your project's build settings to generate dSYM files for debug builds.

To do so, select your target in Xcode then go to Build Settings, search for Debug Information Format, and change its value to DWARF with dSYM File.

Last updated