Skip to main content

Debug symbols (Beta)

Beta release

This page documents the beta release of the Bugsee KMP SDK. Tooling and workflows may change before the stable release.

Bugsee needs platform-specific debug symbols to turn mangled or obfuscated stack traces in crash reports into readable function names, file paths, and line numbers. The Bugsee KMP SDK wraps the native Android and iOS SDKs, so debug symbol upload follows the workflow of the underlying native SDK on each platform — there is no KMP-specific upload tool.

Android

Follow the Android symbolication instructions: Android / Crash reports.

In short:

  • Add the Bugsee Gradle plugin (com.bugsee.android.gradle) to your Android app module. When present, it uploads the ProGuard/R8 mapping.txt automatically at build time.
  • Configure the plugin with the same appToken you pass to Bugsee.launch(...) on Android.
  • If your app ships native .so libraries, enable NDK symbol collection (ndk true) in the plugin configuration and set debugSymbolLevel to SYMBOL_TABLE or FULL for the relevant build types.

In a typical KMP/Compose Multiplatform project, the plugin is wired into composeApp/build.gradle.kts via the version catalog:

// gradle/libs.versions.toml
//
// [versions]
// bugseeGradle = "x.y.z"
//
// [plugins]
// bugsee-gradle-plugin = { id = "com.bugsee.android.gradle", version.ref = "bugseeGradle" }


// composeApp/build.gradle.kts
plugins {
alias(libs.plugins.androidApplication)
alias(libs.plugins.kotlinMultiplatform)
// ...other plugins...

// Activate the Bugsee Gradle plugin
alias(libs.plugins.bugsee.gradle.plugin)
}

android {
// ...your existing android configuration...

bugsee {
appToken("<your_app_token>")
ndk(true) // upload NDK debug symbols
}
}

Replace <your_app_token> with the same token you pass to Bugsee.launch(...) on Android.

iOS

Follow the iOS symbolication instructions: iOS / Crash symbolication.

Apply these instructions to the iosApp Xcode project — the standalone Xcode project (typically generated by the Compose Multiplatform / KMP project wizard alongside composeApp) that hosts your iOS app and embeds the Kotlin/Native shared framework. The post-action script is added to the iosApp scheme, not to anything in the Gradle/Kotlin layer.

In short:

  • Add a Run Script build phase to the Post-actions stage of your iOS app's scheme that invokes the BugseeAgent helper. It finds and uploads dSYMs for your app binary as well as for the Kotlin/Native shared framework.
  • Pass the same appToken you use to initialize Bugsee on iOS to the script.
  • Make sure DEBUG_INFORMATION_FORMAT is set to dwarf-with-dsym for the build configurations you want to symbolicate. When integrating via the Kotlin CocoaPods plugin, apply this setting in your Podfile post_install hook so that all Pod targets — including the Bugsee pod — generate dSYMs.