Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Resolvendo travamentos no Android
Quando seu jogo trava no Android, você frequentemente vê rastros de pilha (stack traces) ofuscados no Play Console ou em outras ferramentas de relatório de falhas como o Firebase Crashlytics. Para tornar esses rastros de pilha legíveis por humanos (simbolizados), você precisa de símbolos de depuração nativos que correspondam à compilação exportada do seu jogo.
O Godot agora fornece símbolos de depuração nativos para download para cada modelo de exportação oficial.
Obtendo símbolos de depuração nativos para modelos oficiais
Os arquivos de símbolos de depuração nativos são fornecidos para cada lançamento estável do Godot e podem ser baixados da página de lançamentos do GitHub.
Por exemplo, para obter os símbolos de depuração nativos para a versão 4.5.1.stable:
Baixe o artefato de lançamento
Godot_native_debug_symbols.4.5.1.stable.template_release.android.zip
Obtendo símbolos de depuração nativos para compilações personalizadas
Seu modelo exportado e seus símbolos de depuração nativos devem vir da mesma compilação, portanto, você só pode usar os símbolos oficiais se estiver usando os modelos de exportação oficiais. Se estiver gerando modelos de exportação personalizados, precisará gerar os arquivos de símbolos correspondentes você mesmo.
Para fazer isso, adicione debug_symbols=yes separate_debug_symbols=yes ao seu comando de compilação do scons. Isso gerará um arquivo chamado android-template-release-native-symbols.zip contendo os símbolos de depuração nativos para sua compilação personalizada.
Por exemplo,
scons platform=android target=template_release debug_symbols=yes separate_debug_symbols=yes generate_android_binaries=yes
Se estiver compilando para múltiplas arquiteturas, deve incluir o separate_debug_symbols=yes apenas no último comando de compilação, de maneira semelhante a como o generate_android_binaries=yes é utilizado.
scons platform=android arch=arm32 target=template_release debug_symbols=yes
scons platform=android arch=arm64 target=template_release debug_symbols=yes
scons platform=android arch=x86_32 target=template_release debug_symbols=yes
scons platform=android arch=x86_64 target=template_release debug_symbols=yes separate_debug_symbols=yes generate_android_binaries=yes
Enviando Símbolos para o Google Play Console
Siga estas etapas para fazer upload dos símbolos de depuração nativos:
Abra o Play Console.
Selecione qualquer aplicativo.
No menu à esquerda, navegue até
Teste e lançamento > Versões mais recentes e pacotes.
Agora escolha o pacote relevante e abra-o.
Selecione a aba
Downloadse role até a seçãoAtivos.
Ao lado de
Símbolos de depuração nativos, clique no ícone de seta para upload.
Selecione e envie o arquivo de símbolos de depuração nativos correspondente para essa versão de compilação.
Alternativamente, você pode carregar os símbolos ao criar uma nova versão:
Na página Criar versão, localize o seu novo pacote de versão.
Clique no menu de três pontos ao lado dele.
Escolha
Enviar símbolos de depuração nativos (.zip)no menu.
Selecione e envie o arquivo de símbolos de depuração nativos correspondente para essa versão de compilação.
Simbolização manual de logs de falha
Você também pode simbolizar os registros de falhas manualmente usando a ferramenta ndk-stack incluída no Android NDK.
Nota
Se você já tem o Android SDK instalado, pode encontrar a ferramenta ndk-stack dentro da pasta ndk no local do seu SDK. Caso contrário, pode baixar o NDK diretamente da página de downloads do NDK.
Extraia o arquivo zip de símbolos de depuração nativos que você baixou anteriormente (ou gerou com sua compilação personalizada).
Salve seu registro de falhas em um arquivo de texto (por exemplo,
crash.txt).
Importante
O ndk-stack procura por uma linha inicial de asteriscos ao analisar o registro de falhas. Certifique-se de que seu crash.txt comece com a seguinte linha:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Execute o ndk-stack informando o caminho para o diretório de símbolos que corresponde à arquitetura de CPU da falha (por exemplo,
arm64-v8a):
ndk-stack -sym path/to/native_debug_symbols/arm64-v8a/ -dump crash.txt
A saída exibirá um rastro simbolizado, mostrando nomes de arquivos e números de linhas no código-fonte do Godot (ou de sua compilação personalizada).