Crash symbolication

Bugsee is able to properly process and symbolicate crash reports that are uploaded from your users. Even if your binary has its symbol stripped, Bugsee will do wonders guessing the right symbols. In some cases it might be enough to root cause the problem, however best results will be achieved when Bugsee can match a crash report with a symbol file (dSYM) of crashed build.

Bugsee can automatically upload managed (PDB/MDB) and platform native (like, dSYM) debug symbols during the build phase. The system is smart enough to automatically match the right symbols to a crash report.


Before adding changes to trigger symbols collection and uploading, make sure your projects are configured to produce those symbols, as it's quite common practice to disable debug information completely for Release builds. Go to Project options -> Compiler and make sure Debug information option is set to either Portable, Symbols only or Full. As was noted above, we operate over managed and native symbols, which are generated alongside each other. The former contain debug information for managed code (which you write in one of IL-based languages, like C#) while the latter contain information that lets us symbolicate crashes in native code (like, Objective-C in case of iOS-targeted build).

Auto upload

Symbols are collected and uploaded during build. We install several hooks into target projects build flow which are triggered automatically.

The only thing you need to do is specify your Bugsee application token for your project to let us properly link debug symbols. Add special assembly attribute BugseeAppToken to ${Project-Root}/Properties/AssemblyInfo.cs file (If it does not exists, create one). In case of MAUI, you can add this directive to the corresponding platform entry file instead. E.g. MainApplication.cs for Android and AppDelegate.cs for iOS.

!Single platform project

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// Various [assembly: Attr()] declarations go here

// Add this line:
[assembly: BugseePlugin.BugseeAppToken("YOUR-ACTUAL-TOKEN-HERE")]


// This is an Android based example

using Android.App;
using Android.Runtime;

// Add this line:
[assembly: BugseePlugin.BugseeAppToken("YOUR-ACTUAL-TOKEN-HERE")]

namespace MyApplication;

public class MainApplication : MauiApplication
    // ...

In case of solution with multiple projects, there is no need to annotate them all. Instead, should only add that annotation to projects that directly reference Bugsee NuGet package.

Manual dSYM upload

In some cases you might need to upload dSYM files manually. Bugsee accepts .zip files with one or multiple dSYM files inside. Once you have located the files and compressed them into an archive, click on the "Manual upload" button within Bugsee and either drag your files over the dialog or click on it to open the file browser:

Manual upload

Once a dSYM file is uploaded manually, we are going to re-process old issues related to that specific build, the process might take some time, usually several minutes.