Get readable crash reports in the Crashlytics dashboard


iOS+ (Apple platforms)

For Apple platform apps using the Crashlytics Unity SDK 8.2.0+, the Firebase Unity Editor plugin automatically configures your Xcode project to upload symbols. Download the latest version.

Android

For Android apps, the Crashlytics Unity SDK 8.6.1+ automatically includes NDK crash reporting, which allows Crashlytics to automatically report Unity IL2CPP crashes on Android. However, to see symbolicated stack traces for native library crashes in the Crashlytics dashboard, you must upload symbol information at build time using the Firebase CLI.

  1. Make sure that you're using the Crashlytics Unity SDK v8.6.1 or later. Download the latest version.

  2. Set up your environment and project for symbol uploading:

    1. Follow the instructions to install the Firebase CLI.

      If you've already installed the CLI, make sure to update to its latest version.

    2. (only for apps using Android API level 30+) Update your app’s AndroidManifest.xml template to disable Pointer Tagging:

      1. Check the box for Android Player Settings > Publishing Settings > Build > Custom Main Manifest.

      2. Open the manifest template located at Assets/Plugins/Android/AndroidManifest.xml.

      3. (only for apps using an SDK version before 8.8.0) Add the following attribute to the application tag: <application android:allowNativeHeapPointerTagging="false" ... />

  3. Build your project and upload symbols.

    Complete these steps each time that you create a release build or any build for which you want to see symbolicated stack traces in the Firebase console.

    1. From the Build Settings dialog, do one of the following:

      • Export to an Android Studio project to build your project; or

      • Build your APK directly from the Unity Editor.
        Before building, make sure the checkbox for Create symbols.zip is checked in the Build Settings dialog.

    2. Once your build has finished, generate a Crashlytics-compatible symbol file and upload it to Firebase servers by running the following Firebase CLI command:

      firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
      • FIREBASE_APP_ID: Your Firebase Android App ID (not your package name)
        Example Firebase Android App ID: 1:567383003300:android:17104a2ced0c9b9b

      • PATH/TO/SYMBOLS: The path to the symbol file generated by the CLI

        • Exported to an Android Studio project — PATH/TO/SYMBOLS is the unityLibrary/symbols directory, which is created in the exported project root after you build the app via Gradle or Android Studio.

        • Built the APK directly from within Unity — PATH/TO/SYMBOLS is the path of the zipped symbol file generated in the project root directory when your build finished (for example: myproject/myapp-1.0-v100.symbols.zip).

      View advanced options for using the Firebase CLI command for symbol file generation and upload

      Flag Description
      --generator=csym

      Uses the legacy cSYM symbol file generator instead of the default Breakpad generator

      Not recommended for use. We recommend using the default Breakpad symbol file generator.

      --generator=breakpad

      Uses the Breakpad symbol file generator

      Note that the default for symbol file generation is Breakpad. Only use this flag if you've added symbolGenerator { csym() } in your build configuration and you want to override it to use Breakpad instead.

      --dry-run

      Generates the symbol files but does not upload them

      This flag is useful if you want to inspect the content of the files that are sent.

      --debug Provides additional debugging information