Por padrão, as bibliotecas de código nativo são removidas nos builds de lançamento do app. Esse processo consiste em remover a tabela de símbolos e as informações de depuração contidas em todas as bibliotecas nativas usadas pelo app. A remoção de bibliotecas de código nativo resulta em economia de tamanho significativa. No entanto, é impossível diagnosticar falhas no Google Play Console devido à falta de informações (como nomes de classe e função). Para depurar falhas, inclua um arquivo de símbolos de depuração com seu app no Play Console.
Fazer upload de um arquivo de símbolos
O Google Play Console informa falhas nativas em Android vitals. Em poucas etapas, é possível gerar e fazer upload de um arquivo de símbolos de depuração nativo para seu app. Esse arquivo permite o stack trace de falhas nativas simbolizadas (que incluem nomes de classe e função) no Android Vitals para ajudar você a depurar seu app na produção. Essas etapas variam dependendo da versão do Plug-in do Android para Gradle usada no projeto e se você está usando um pacote de apps Android (recomendado) ou um APK.
Versão do Plug-in do Android para Gradle: 4.1 ou mais recente
Se o projeto criar um Android App Bundle (AAB), você poderá configurar o build
para incluir automaticamente o arquivo de símbolos de depuração nativo no AAB para que ele seja
enviado ao Play Console quando você publicar o app. Para incluir esse arquivo em
builds de lançamento, adicione o seguinte ao arquivo build.gradle.kts
do app:
android.buildTypes.release.ndk.debugSymbolLevel = { SYMBOL_TABLE | FULL }
Selecione o nível do símbolo de depuração:
- Use
SYMBOL_TABLE
para conseguir os nomes de função nos stack traces simbólicos do Play Console. Esse nível tem suporte a Tombstones. - Use
FULL
para conseguir os nomes de função, arquivos e números de linha nos stack traces simbólicos do Play Console.
Se o projeto cria um APK, use a
configuração android.buildTypes.release.ndk.debugSymbolLevel
mostrada anteriormente para
gerar o arquivo de símbolos de depuração nativo separadamente. Faça upload do arquivo
de símbolos de depuração
nativo
manualmente para o Google Play Console. O processo é semelhante ao upload de um arquivo de mapeamento
para desofuscar stack traces.
Como parte do processo de build, o Plug-in do Android para Gradle gera o arquivo no
seguinte local do projeto:
app/build/outputs/native-debug-symbols/<var>variant-name</var>/native-debug-symbols.zip
Versão do plug-in do Android para Gradle: 4.0 ou versões anteriores (e outros sistemas de build)
Como parte do processo de compilação, o Plug-in do Android para Gradle mantém uma cópia das bibliotecas sem símbolos de depuração em um diretório do projeto. Essa estrutura de diretório é semelhante a esta:
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
Compacte o conteúdo do diretório:
cd app/build/intermediates/cmake/universal/release/obj zip -r symbols.zip .
Faça upload do arquivo
symbols.zip
manualmente no Google Play Console.