For the complete documentation index, see llms.txt. This page is also available as Markdown.

Uploading Symbol Files

Upload dSYMs, ProGuard and R8 mappings, NDK symbols, source maps, and Dart symbols with the Luciq CLI, from your terminal or your CI pipeline.

To symbolicate and deobfuscate your crash reports, Luciq needs your build's symbol files. The CLI uploads all of them — for iOS, Android, React Native, and Flutter — with one consistent command shape:

luciq upload <SUBCOMMAND> FILE --slug my-app --mode production [options]

Upload commands authenticate with your CLI token, exactly like the data commands — run luciq login once, or set LUCIQ_AUTH_TOKEN in CI. You don't pass an application token: Luciq resolves the app from --slug and --mode.

Uploading requires the Mapping Files modify permission on your role, and access to the app you're uploading to. Run luciq apps list to see the slugs and modes available to you.

On success the CLI prints a confirmation; on failure it prints the error and exits with a non-zero status, so a failed upload fails your CI job.

Run luciq upload help SUBCOMMAND to see the full options of any command.


iOS

Command
File
Description

luciq upload ios-dsym FILE

.zip

iOS dSYM symbols

luciq upload ios-dsym MyApp-dSYMs.zip --slug my-app --mode production

Android

Command
File
Description

luciq upload android-mapping FILE

mapping.txt

ProGuard/R8 mapping file

luciq upload android-ndk FILE

.zip

NDK .so shared object files (--arch)

luciq upload android-mapping mapping.txt \
  --slug my-app \
  --mode production \
  --version-name 1.0.0 \
  --version-code 1

React Native

Command
File
Description

luciq upload react-native-ios-dsym FILE

.zip

iOS native dSYM symbols

luciq upload react-native-ios-sourcemap FILE

.json/.txt

iOS JavaScript source map

luciq upload react-native-android-mapping FILE

mapping.txt

Android native ProGuard/R8 mapping

luciq upload react-native-android-sourcemap FILE

.json/.txt

Android JavaScript source map

luciq upload react-native-ndk FILE

.zip

NDK .so shared object files (--arch)

Source-map commands additionally accept --codepush to tag the upload with a CodePush label.

Flutter

Command
File
Description

luciq upload flutter-ios-dsym FILE

.zip

iOS native dSYM symbols

luciq upload flutter-ios-sourcemap FILE

.zip

iOS Dart symbol files

luciq upload flutter-android-mapping FILE

mapping.txt

Android native ProGuard/R8 mapping

luciq upload flutter-android-sourcemap FILE

.zip

Android Dart symbol files

luciq upload flutter-ndk FILE

.zip

NDK .so shared object files (--arch)


Options by command type

--slug and --mode are required for every upload command. The remaining options depend on the type of file:

Command type
Required options

dSYM (*-ios-dsym)

--slug, --mode only

Mapping (*-android-mapping)

--slug, --mode, --version-name, --version-code

Source map / Dart symbols (*-sourcemap)

--slug, --mode, --version-name, --version-code

NDK (*-ndk)

--slug, --mode, --version-name, --arch

  • --slug: String — your application slug, from luciq apps list.

  • --mode: String — the environment the build reports to: production, beta, staging, alpha, qa, or development.

  • --version-name: String — your app version name, e.g. 1.0.0.

  • --version-code: String — your app version code, e.g. 1.

  • --arch: String — the NDK architecture of the .so files: armeabi-v7a, arm64-v8a, x86, or x86_64. NDK commands take --arch instead of --version-code.

  • --codepush: String (optional, React Native source maps only) — CodePush label for the upload.


Using it in CI

Set LUCIQ_AUTH_TOKEN from your CI platform's secret store, and the upload step needs no interactive login:

Last updated