Este guia de início rápido descreve como configurar o Firebase Crashlytics no seu aplicativo com o SDK do Firebase Crashlytics para que você possa obter relatórios de falhas abrangentes no Console do Firebase.
A configuração do Crashlytics requer tarefas no console do Firebase e no seu IDE (como adicionar um arquivo de configuração do Firebase e o SDK do Crashlytics). Para concluir a configuração, você precisará forçar uma falha de teste para enviar seu primeiro relatório de falha ao Firebase.
Antes de você começar
Adicione o Firebase ao seu projeto do Unity, caso ainda não o tenha feito. Se você não tiver um projeto do Unity, poderá baixar um aplicativo de exemplo .
Recomendado : para obter automaticamente registros de localização atual para entender as ações do usuário que levam a um evento de falha, não fatal ou ANR, você precisa ativar o Google Analytics em seu projeto do Firebase.
Se o seu projeto existente do Firebase não tiver o Google Analytics ativado, você poderá ativar o Google Analytics na guia Integrações do seu
Se você estiver criando um novo projeto do Firebase, ative o Google Analytics durante o fluxo de trabalho de criação do projeto.
Etapa 1 : adicione o SDK do Crashlytics ao seu aplicativo
Observe que quando você registrou seu projeto Unity com seu projeto Firebase, talvez você já tenha baixado o SDK do Firebase Unity e adicionado os pacotes descritos nas etapas a seguir.
Faça download do SDK do Firebase Unity e descompacte-o em um local conveniente. O SDK do Firebase Unity não é específico da plataforma.
Em seu projeto aberto do Unity, navegue até Assets > Import Package > Custom Package .
No SDK descompactado, selecione importar o SDK do Crashlytics (
FirebaseCrashlytics.unitypackage
).Para aproveitar as vantagens dos registros de localização atual , adicione também o SDK do Firebase para Google Analytics ao seu aplicativo (
FirebaseAnalytics.unitypackage
). Certifique-se de que o Google Analytics esteja ativado em seu projeto Firebase.Na janela Importar pacote do Unity , clique em Importar .
Etapa 2 : inicializar o Crashlytics
Crie um novo script C# e adicione-o a um
GameObject
na cena.Abra sua primeira cena e crie um
GameObject
vazio chamadoCrashlyticsInitializer
.Clique em Adicionar componente no Inspetor do novo objeto.
Selecione seu script
CrashlyticsInit
para adicioná-lo ao objetoCrashlyticsInitializer
.
Inicialize o Crashlytics no método
Start
do script:using System.Collections; using System.Collections.Generic; using UnityEngine; // Import Firebase and Crashlytics using Firebase; using Firebase.Crashlytics; public class CrashlyticsInit : MonoBehaviour { // Use this for initialization void Start () { // Initialize Firebase Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => { var dependencyStatus = task.Result; if (dependencyStatus == Firebase.DependencyStatus.Available) { // Create and hold a reference to your FirebaseApp, // where app is a Firebase.FirebaseApp property of your application class. // Crashlytics will use the DefaultInstance, as well; // this ensures that Crashlytics is initialized. Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance; // When this property is set to true, Crashlytics will report all // uncaught exceptions as fatal events. This is the recommended behavior. Crashlytics.ReportUncaughtExceptionsAsFatal = true; // Set a flag here for indicating that your project is ready to use Firebase. } else { UnityEngine.Debug.LogError(System.String.Format( "Could not resolve all Firebase dependencies: {0}",dependencyStatus)); // Firebase Unity SDK is not safe to use here. } }); } // Update is called once per frame void Update() // ... }
Etapa 3 : (somente Android) Prepare-se para o upload de símbolos
Esta etapa só é necessária para aplicativos Android que usam IL2CPP.
Para aplicativos Android que usam o back-end de script Mono do Unity, essas etapas não são necessárias.
Para aplicativos da plataforma Apple, essas etapas não são necessárias porque o plug-in Firebase Unity Editor configura automaticamente seu projeto Xcode para fazer upload de símbolos.
O Unity SDK 8.6.1+ do Crashlytics inclui automaticamente relatórios de falhas do NDK, o que permite que o Crashlytics relate automaticamente falhas do Unity IL2CPP no Android. No entanto, para ver rastreamentos de pilha simbolizados para falhas de bibliotecas nativas no painel do Crashlytics, você deve fazer upload das informações do símbolo no momento da criação usando a CLI do Firebase.
Para configurar o upload de símbolos, siga as instruções para instalar a CLI do Firebase .
Se você já instalou a CLI, atualize para a versão mais recente .
Passo 4 : Construa seu projeto e carregue os símbolos
iOS+ (plataforma Apple)
Na caixa de diálogo Build Settings , exporte seu projeto para um espaço de trabalho Xcode.
Crie seu aplicativo.
Para plataformas Apple, o plug-in Firebase Unity Editor configura automaticamente seu projeto Xcode para gerar e fazer upload de um arquivo de símbolo compatível com Crashlytics para servidores Firebase para cada build.
Android
Na caixa de diálogo Configurações de compilação , siga um destes procedimentos:
Exporte para um projeto do Android Studio para construir seu projeto; ou
Crie seu APK diretamente do Unity Editor.
Antes de construir, certifique-se de que a caixa de seleção Criar símbolos.zip esteja marcada na caixa de diálogo Configurações de construção .
Assim que a compilação for concluída, gere um arquivo de símbolo compatível com Crashlytics e faça upload dele para os servidores do Firebase executando o seguinte comando Firebase CLI:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : seu ID do aplicativo Android do Firebase (não o nome do seu pacote)
Exemplo de ID do aplicativo Android do Firebase:1:567383003300:android:17104a2ced0c9b9b
Aqui estão duas maneiras de encontrar seu ID do aplicativo Firebase:
No arquivo
google-services.json
, o ID do aplicativo é o valormobilesdk_app_id
; ouNo console do Firebase, acesse as configurações do projeto . Role para baixo até o cartão Seus aplicativos e clique no aplicativo Firebase desejado para encontrar seu ID do aplicativo.
PATH/TO/SYMBOLS : O caminho para o arquivo de símbolos gerado pela CLI
Exportado para um projeto do Android Studio — PATH/TO/SYMBOLS é o diretório
unityLibrary/symbols
, que é criado na raiz do projeto exportado depois que você cria o aplicativo via Gradle ou Android Studio.Construído o APK diretamente do Unity — PATH/TO/SYMBOLS é o caminho do arquivo de símbolo compactado gerado no diretório raiz do projeto quando sua compilação foi concluída (por exemplo:
myproject/myapp-1.0-v100.symbols.zip
).
Veja opções avançadas para usar o comando Firebase CLI para geração e upload de arquivos de símbolos
Bandeira Descrição --generator=csym
Usa o gerador de arquivo de símbolo cSYM legado em vez do gerador Breakpad padrão
Não recomendado para uso. Recomendamos usar o gerador de arquivo de símbolos Breakpad padrão.
--generator=breakpad
Usa o gerador de arquivo de símbolos Breakpad
Observe que o padrão para geração de arquivos de símbolos é Breakpad. Use este sinalizador apenas se você adicionou
symbolGenerator { csym() }
em sua configuração de compilação e você deseja substituí-lo para usar o Breakpad.--dry-run
Gera os arquivos de símbolos, mas não os carrega
Este sinalizador é útil se você deseja inspecionar o conteúdo dos arquivos enviados.
--debug
Fornece informações adicionais de depuração
Etapa 5 : forçar uma falha de teste para concluir a configuração
Para concluir a configuração do Crashlytics e ver os dados iniciais no painel do Crashlytics do console do Firebase, você precisa forçar uma falha de teste.
Encontre um
GameObject
existente e adicione a ele o seguinte script. Este script causará uma falha no teste alguns segundos após a execução do aplicativo.using System; using UnityEngine; public class CrashlyticsTester : MonoBehaviour { int updatesBeforeException; // Use this for initialization void Start () { updatesBeforeException = 0; } // Update is called once per frame void Update() { // Call the exception-throwing method here so that it's run // every frame update throwExceptionEvery60Updates(); } // A method that tests your Crashlytics implementation by throwing an // exception every 60 frame updates. You should see reports in the // Firebase console a few minutes after running your app with this method. void throwExceptionEvery60Updates() { if (updatesBeforeException > 0) { updatesBeforeException--; } else { // Set the counter to 60 updates updatesBeforeException = 60; // Throw an exception to test your Crashlytics implementation throw new System.Exception("test exception please ignore"); } } }
Crie seu aplicativo e carregue as informações do símbolo após a conclusão da construção.
iOS+ : o plug-in Firebase Unity Editor configura automaticamente seu projeto Xcode para fazer upload de seu arquivo de símbolo.
Android : para seus aplicativos Android que usam IL2CPP, execute o comando
crashlytics:symbols:upload
da CLI do Firebase para fazer upload do arquivo de símbolo.
Execute seu aplicativo. Assim que seu aplicativo estiver em execução, observe o log do dispositivo e aguarde o disparo da exceção do
CrashlyticsTester
.iOS+ : visualize os logs no painel inferior do Xcode.
Android : visualize os logs executando o seguinte comando no terminal:
adb logcat
.
Acesse o painel do Crashlytics do console do Firebase para ver a falha do teste.
Se você atualizou o console e ainda não vê a falha do teste após cinco minutos, habilite o registro de depuração para ver se seu aplicativo está enviando relatórios de falha.
E é isso! O Crashlytics agora está monitorando seu aplicativo em busca de falhas. Visite o painel do Crashlytics para visualizar e investigar todos os seus relatórios e estatísticas.
Próximos passos
- (Recomendado) Para aplicativos Android que usam IL2CPP, obtenha ajuda para depurar falhas causadas por erros de memória nativa coletando relatórios GWP-ASan . Esses erros relacionados à memória podem estar associados à corrupção de memória do seu aplicativo, que é a principal causa de vulnerabilidades de segurança do aplicativo. Para aproveitar esse recurso de depuração, certifique-se de que seu aplicativo use o SDK do Crashlytics para Unity mais recente (v10.7.0+) e tenha o GWP-ASan explicitamente ativado (requer que você modifique seu Android App Manifest ).
- Personalize a configuração do seu relatório de falhas adicionando relatórios opcionais, registros, chaves e rastreamento de erros não fatais.
- Integre-se ao Google Play para que você possa filtrar os relatórios de erros do seu aplicativo Android por faixa do Google Play diretamente no painel do Crashlytics. Isso permite que você concentre melhor seu painel em compilações específicas.