Symbolication/Deobfsucation

Explained here is how to symbolicate your crashes to get more details from the stack trace for your Flutter apps.

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.

1

Install Luciq CLI

Install the Luciq CLI globally using Dart:

Terminal
dart pub global activate luciq_cli

Make sure the Dart global bin directory is in your PATH. If not, add it:

Terminal
# For macOS/Linux
export PATH="$PATH":"$HOME/.pub-cache/bin"

# For Windows
set PATH=%PATH%;%LOCALAPPDATA%\Pub\Cache\bin
2

Set up your credentials

You can provide your credentials in multiple ways:

Option 1: Environment Variables

Terminal
export LUCIQ_APP_TOKEN=your_app_token_here
export LUCIQ_API_KEY=your_api_key_here

Option 2: local.properties file Create a local.properties file in your project root:

local.properties
LUCIQ_APP_TOKEN=your_app_token_here
LUCIQ_API_KEY=your_api_key_here

Option 3: Pass as command-line arguments (shown in next step)

circle-info

Reach out to our support team to get your API_KEY if you don't have one.

3

Upload symbol files

Run the upload command from your Flutter project directory:

Terminal
# 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-logs

The CLI will automatically:

  • Detect platform from filenames (.android or .ios)

  • Read app version from pubspec.yaml

  • Group and upload files by platform

  • Find your app token from source files if not provided

circle-info

For more options and advanced usage, run luciq upload-symbols --help

How Symbol File Upload Works

The Luciq CLI automatically detects and groups your symbol files:

  • Files containing .android in their name are uploaded to the Android endpoint

  • Files containing .ios in their name are uploaded to the iOS endpoint

Example: If your symbols folder contains:

  • app.android-arm.symbols

  • app.android-arm64.symbols

  • app.ios-arm64.symbols

The CLI will:

  1. Create one zip with all .android files → upload as Android platform

  2. Create another zip with all .ios files → upload as iOS platform

Manual Upload Using API

If you prefer to upload symbol files manually using the API, you can use the following endpoints:

circle-exclamation

Android Symbol Upload

1

Fetch the symbol file

Obtain the symbol file for your Android build and create a ZIP file containing all symbol files in the root directory (without any subfolders).

circle-info

Example structure:

Do NOT include folders inside the ZIP.

2

Get your API_KEY

Reach out to our support team to get your API_KEY.

3

Upload the mapping file

Upload the mapping file using the following endpoint:

Parameters:

  • file: Path to your symbols ZIP file

  • application_token: Your Luciq application token

  • api_key: Your API key

  • app_version_name: Your app version (e.g., "1.0.0")

  • app_version_code: Your app build number (e.g., "1")

iOS Symbol Upload

1

Fetch the symbol file

Obtain the symbol file for your iOS build and create a ZIP file containing all symbol files in the root directory (without any subfolders).

circle-info

Example structure:

Do NOT include folders inside the ZIP.

2

Get your API_KEY

Reach out to our support team to get your API_KEY.

3

Upload the mapping file

Upload the mapping file using the following endpoint:

Parameters:

  • file: Path to your symbols ZIP file

  • application_token: Your Luciq application token

  • api_key: Your API key

  • app_version_name: Your app version (e.g., "1.0.0")

  • app_version_code: Your app build number (e.g., "1")

Native Crash Symbolication

For native iOS and Android crashes, you'll need to upload additional symbol files.

1

iOS Native Symbolication

For iOS native crashes and dSYM symbolication, follow the iOS documentation:

iOS Symbolication Guide
circle-info

You can also use the --enable-native-sourcemaps flag with the Luciq CLI to automatically upload iOS DWARF files.

2

Android Native Deobfuscation

For Android native crashes and ProGuard/R8 mapping files, follow the Android documentation:

Android Deobfuscation Guide
circle-info

You can also use the --enable-native-sourcemaps flag with the Luciq CLI to automatically upload the Android mapping.txt file.

Last updated