Symbolication/Deobfsucation
Deobfuscate Dart stack traces and symbolicate native crashes from your Flutter app by uploading symbol files for Android and iOS with the Luciq CLI.
Deobfuscating Dart Crashes
In order to start deobfuscating Dart related crashes, you'll first need to follow the steps in the following URL to obfuscate your app: https://docs.flutter.dev/deployment/obfuscate
Uploading Symbol Files with Luciq CLI
The easiest way to upload symbol files for both Android and iOS is to use the Luciq CLI tool.
Set up your credentials
You can provide your credentials in multiple ways:
Option 1: Environment Variables
export LUCIQ_APP_TOKEN=your_app_token_here
export LUCIQ_API_KEY=your_api_key_hereOption 2: local.properties file Create a local.properties file in your project root:
LUCIQ_APP_TOKEN=your_app_token_here
LUCIQ_API_KEY=your_api_key_hereOption 3: Pass as command-line arguments (shown in next step)
Upload symbol files
Run the upload command from your Flutter project directory:
# Upload all symbols (searches current directory recursively)
luciq upload-symbols
# Upload from a specific directory
luciq upload-symbols --symbols-path /path/to/symbols
# Upload with explicit credentials
luciq upload-symbols --token YOUR_APP_TOKEN --api_key YOUR_API_KEY
# Upload with native sourcemaps (includes Android mapping.txt and iOS DWARF files)
luciq upload-symbols --enable-native-sourcemaps
# Upload with verbose logging to see detailed progress
luciq upload-symbols --verbose-logsThe CLI will automatically:
Detect platform from filenames (
.androidor.ios)Read app version from
pubspec.yamlGroup and upload files by platform
Find your app token from source files if not provided
How Symbol File Upload Works
The Luciq CLI automatically detects and groups your symbol files:
Files containing
.androidin their name are uploaded to the Android endpointFiles containing
.iosin their name are uploaded to the iOS endpoint
Example: If your symbols folder contains:
app.android-arm.symbolsapp.android-arm64.symbolsapp.ios-arm64.symbols
The CLI will:
Create one zip with all
.androidfiles → upload as Android platformCreate another zip with all
.iosfiles → upload as iOS platform
Uploading with the standalone Luciq CLI
If you already use the standalone Luciq CLI (the luciq-cli Ruby gem) in your pipeline, it can upload Flutter symbol files too — zip your Dart symbol files per platform, then:
It also covers native dSYMs, ProGuard/R8 mappings, and NDK .so files. See Uploading Symbol Files.
Manual Upload Using API
If you prefer to upload symbol files manually using the API, you can use the following endpoints:
Important: When uploading via API, symbol files must be packaged as a ZIP file with all symbol files in the root directory (no subfolders). The archive must be a .zip file format.
Android Symbol Upload
iOS Symbol Upload
Native Crash Symbolication
For native iOS and Android crashes, you'll need to upload additional symbol files.
Last updated
