Includi i simboli nativi nella build di release

Per impostazione predefinita, le librerie di codice nativo vengono spostate nelle build di release dell'app. Questo processo consiste nella rimozione della tabella dei simboli e delle informazioni di debug contenute in tutte le librerie native utilizzate dall'app. Lo stripping delle librerie di codice nativo consente di risparmiare notevolmente sulle dimensioni; tuttavia, è impossibile diagnosticare gli arresti anomali su Google Play Console a causa delle informazioni mancanti (come i nomi di classi e funzioni). Per eseguire il debug degli arresti anomali, devi includere un file di simboli di debug con la tua app in Play Console.

Carica un file di simboli

Google Play Console registra gli arresti anomali nativi in Android vitals. Con pochi passaggi, puoi generare e caricare un file di simboli di debug nativo per la tua app. Questo file attiva le tracce dello stack degli arresti anomali nativi simbolizzati (che includono i nomi di classi e funzioni) in Android Vitals per aiutarti a eseguire il debug della tua app in produzione. Questi passaggi varieranno a seconda della versione del plug-in Gradle per Android utilizzato nel progetto e se utilizzi un Android App Bundle (consigliato) o un APK.

Plug-in Android per Gradle versione 4.1 o successive

Se il tuo progetto crea un Android App Bundle (AAB), puoi configurare la build in modo da includere automaticamente il file dei simboli di debug nativo nell'AAB in modo che venga caricato in Play Console quando pubblichi l'app. Per includere questo file nelle build di release, aggiungi quanto segue al file build.gradle.kts dell'app:

android.buildTypes.release.ndk.debugSymbolLevel = { SYMBOL_TABLE | FULL }

Seleziona il livello del simbolo di debug tra i seguenti:

  • Utilizza SYMBOL_TABLE per visualizzare i nomi delle funzioni nelle analisi dello stack simboliche di Play Console. Questo livello supporta tombstone.
  • Utilizza FULL per visualizzare i nomi delle funzioni, i file e i numeri di riga nelle analisi dello stack simboliche di Play Console.

Se il tuo progetto crea un APK, utilizza l'impostazione android.buildTypes.release.ndk.debugSymbolLevel mostrata in precedenza per generare il file dei simboli di debug nativi separatamente. Carica manualmente il file dei simboli di debug nativi in Google Play Console (la procedura è simile al caricamento di un file di mappatura per deobfuscare le analisi dello stack). Durante il processo di compilazione, il plug-in Android per Gradle genera questo file nella seguente posizione del progetto:

app/build/outputs/native-debug-symbols/<var>variant-name</var>/native-debug-symbols.zip

Plug-in Android per Gradle versione 4.0 o precedenti (e altri sistemi di compilazione)

Come parte del processo di compilazione, il plug-in Android per Gradle conserva una copia delle librerie contenenti informazioni di debug in una directory di progetto. Questa struttura di directory è simile alla seguente:

app/build/intermediates/cmake/universal/release/obj/
├── armeabi-v7a/
│   ├── libgameengine.so
│   ├── libothercode.so
│   └── libvideocodec.so
├── arm64-v8a/
│   ├── libgameengine.so
│   ├── libothercode.so
│   └── libvideocodec.so
├── x86/
│   ├── libgameengine.so
│   ├── libothercode.so
│   └── libvideocodec.so
└── x86_64/
    ├── libgameengine.so
    ├── libothercode.so
    └── libvideocodec.so
  1. Comprimi i contenuti di questa directory:

    cd app/build/intermediates/cmake/universal/release/obj
    zip -r symbols.zip .
    
  2. Carica manualmente il file symbols.zip in Google Play Console.