Version: 2021.1
App patching for fast development iteration
Single-Pass Stereo Rendering for Android

Enabling Android symbols

Unity can produce a package with symbols for native libraries which you can use to symbolicate stack traces and debug your app. Symbolication is the process of translating an active memory address into information you can use, like a method name. This helps you understand where a crash happened.

You can also upload the symbols package to the Google Play Console to see a human-readable stack trace on the Android Vitals dashboard.

There are two ways to enable the creation of symbols packages:

  1. In the Build Settings window (menu: File > Build Settings), for the Android platform, set the Create symbols.zip option to one of the following:
    • Public
    • Debugging
  2. Use the EditorUserBuildSettings.androidCreateSymbols API.
Enabling one of the Android symbols packages
Enabling one of the Android symbols packages

Public symbols

The Public Symbols package contains the information needed to resolve function addresses to human readable strings. Because it doesn’t contain debug information, it’s much smaller than the Debugging Symbols package.

Unity uses the --strip-debug parameter to create public symbols. To learn more, see information about --strip-debug in the Linux user manual.

Debugging Symbols

The Debugging Symbols package contains full debugging information and a symbol table. Use it to:

  • Resolve stack traces and to debug apps for which you have source code available.
  • Place breakpoints and debug the code with the native debugger.

Note: If debugging symbols aren’t available, Unity will place a file with public symbols in your project at build time (for example, libunity.so, which only contains a public symbols file).

Unity uses the --only-keep-debug parameter to create debugging symbols. To learn more, see information about --only-keep-debug in the Linux user manual.

Using symbols in the Google Play console

After you upload your app to Google Play, you can also upload a Public or Debugging symbols package (both of them contain the required symbol table). To do this, click the three dots next to the app in the Google Play console and select Uploading native debug symbols (.zip).

Uploading native debug symbols in the Google Play console
Uploading native debug symbols in the Google Play console

After you upload the symbols package, Google Play will symbolicate any crash you receive in Android Vitals > Crashes and ANRs. This can provide additional information on what went wrong.

Note: The crashes Google Play received before you uploaded the symbols package won’t be symbolicated.

App patching for fast development iteration
Single-Pass Stereo Rendering for Android