Veja neste guia como personalizar seus relatórios de erros usando o SDK do Firebase Crashlytics. Por padrão, o Crashlytics coleta automaticamente relatórios de erros para todos os usuários do seu app. Se quiser, desative os relatórios de falhas automáticos e ative os relatórios de permissão para os usuários. O Crashlytics oferece quatro mecanismos de geração de registros prontos para uso: chaves personalizadas, registros personalizados, identificadores de usuários e exceções capturadas.
Relatar exceções
Informar exceções capturadas
Se você tiver exceções esperadas, o SDK do Crashlytics pode defini-las como eventos não fatais nos relatórios. Esses eventos são registrados no dispositivo e enviados com o próximo relatório de eventos fatais ou quando o usuário final reinicia o jogo.
Registre exceções em C# usando o seguinte método:
Crashlytics.LogException(Exception ex);
É possível registrar exceções esperadas nos blocos try/catch do seu jogo:
try { myMethodThatThrows(); } catch (Exception e) { Crashlytics.LogException(e); // handle your exception here! }
Informar exceções não capturadas
Para exceções não capturadas que não apresentam falhas no seu jogo (por exemplo,
exceções não identificadas de C# na lógica do jogo), é possível fazer com que o SDK do Crashlytics relate esses dados
como eventos fatais definindo a
propriedade Crashlytics.ReportUncaughtExceptionsAsFatal
como true
ao
inicializar o Crashlytics no seu projeto do Unity
.
Esses eventos são informados ao Crashlytics em tempo real sem que
o usuário final precise reiniciar o jogo.
Informar essas exceções não identificadas como eventos fatais significa que elas serão contabilizadas nas suas estatísticas de usuários sem falhas e alertas de velocidade.
As falhas nativas são sempre relatadas como eventos fatais. Esses eventos são registrados no dispositivo e enviados quando o usuário final reinicia o jogo.
void Start() { // Since there is no try-block surrounding this call, if an exception is thrown, // it is considered unexpected. // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true` // will ensure that such cases are reported as fatals. thirdPartyMethodThatMayThrow(); }
Adicionar chaves personalizadas
As chaves personalizadas ajudam você a chegar ao estado específico do seu aplicativo que está gerando uma falha. É possível associar pares de chave-valor arbitrários aos seus relatórios de erros e usar as chaves personalizadas para pesquisar e filtrar relatórios de erros no Console do Firebase.
- No painel do Crashlytics, é possível pesquisar problemas que correspondam a uma chave personalizada.
- Ao analisar um problema específico no console, você pode ver as chaves personalizadas associadas a cada evento (subguia Chaves) e até mesmo filtrar os eventos por chaves personalizadas (Filtro, na parte de cima da página).
Quando chamadas várias vezes, as chaves existentes são atualizadas com valores novos, e somente o valor mais atual é capturado quando uma falha é registrada.
Crashlytics.SetCustomKey(string key, string value);
Adicionar mensagens de registro personalizadas
As mensagens registradas são associadas aos dados da falha e são visíveis no painel do Firebase Crashlytics quando você visualiza uma falha específica.
Crashlytics.Log(string message);
Definir identificadores de usuários
É possível usar um ID, um token ou um valor com hash para identificar exclusivamente o usuário final do seu app sem divulgar ou transmitir qualquer informação pessoal. Também é possível limpar o valor ao defini-lo como uma string em branco. Esse valor é exibido no painel do Firebase Crashlytics ao visualizar uma falha específica.
Crashlytics.SetUserId(string identifier);
Ative a permissão para geração de relatórios
Por padrão, o Crashlytics coleta automaticamente relatórios de erros para todos os usuários do seu app. Você pode dar aos usuários mais controle sobre os dados que eles enviam, permitindo que eles ativem o relatório de falhas.
Para desativar a coleta automática e inicializar o Crashlytics apenas para usuários
selecionados, chame a substituição da coleta de dados do Crashlytics no ambiente de execução. O
valor de modificação continua entre os lançamentos do seu app. Assim, o Crashlytics consegue
coletar relatórios automaticamente. Para desativar o relatório automático de falhas, transmita
false
como o valor de modificação. Quando definido como false
, o novo valor não se aplica
até a próxima execução do app.
Crashlytics.IsCrashlyticsCollectionEnabled = true
Gerenciar dados do Crash Insights
Com o Crash Insights, você soluciona problemas quando compara stack traces anônimos a traces de outros aplicativos do Firebase. Você receberá um aviso se o problema fizer parte de uma tendência maior. Para muitos problemas, o Crash Insights também oferece recursos para ajudar a depurar a falha.
Ele usa dados de falhas agregados para identificar tendências de estabilidade comuns. Caso prefira não compartilhar os dados do app, é possível desativar o Crash Insights no menu com o mesmo nome na parte de cima da lista de problemas do Crashlytics no Console do Firebase.