Agent Wranglers

MOB-31Recommended

Upload symbols for every build

Report crashes from every release build to a crash service. Upload that build's dSYM files and R8 or ProGuard mapping files in the same CI job.

How to do it

Without symbols, a crash report shows memory addresses or renamed classes instead of your code. On iOS, set the debug information format to DWARF with dSYM File for release builds. On Android, upload the mapping file that R8 writes. Cross-platform apps also upload their own source maps or symbol files. The general rule is log, track errors and alert, and a self-hosted pick is in use GlitchTip for error tracking. Tag each report with the build number from raise the build number on every upload.

Examples

Kotlin example

android {
    buildTypes {
        getByName("release") {
            isMinifyEnabled = true
            configure<CrashlyticsExtension> { mappingFileUploadEnabled = true }
        }
    }
}

Plain text example

lane :upload_symbols do
  upload_symbols_to_crashlytics(dsym_path: "./build/FitTrack.app.dSYM.zip", gsp_path: "./FitTrack/GoogleService-Info.plist")
end

How to check

Crash a test build on purpose from a hidden test action. The report shows file names and line numbers from your code within 15 minutes. The crash service lists no missing symbols for the last 3 builds.

Sources

For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/mobile-apps/crashes-and-quality/crash-symbols">Agent Wranglers mobile apps playbook</a>. In code you write, add a comment next to it with the same link.