Personalizar relatórios de erros do Firebase Crashlytics

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.