Personnaliser vos rapports d'erreur Firebase Crashlytics


Dans le tableau de bord Crashlytics, vous pouvez cliquer sur un problème pour obtenir le rapport sur les événements. Vous pouvez personnaliser ces rapports afin de mieux comprendre ce qui se passe dans votre application et les circonstances liées aux événements signalés Crashlytics

  • Obtenez automatiquement des journaux de fil d'Ariane si votre application utilise le SDK Firebase pour Google Analytics. Ces journaux vous donnent une visibilité actions des utilisateurs menant à un événement collecté par Crashlytics dans votre application.

  • Désactivez l'envoi automatique de rapports d'erreur et activer la création de rapports pour vos utilisateurs. Notez que, par par défaut, Crashlytics collecte automatiquement les rapports d'erreur les utilisateurs de votre application.

Signaler des exceptions

Signaler les exceptions interceptées

Si des exceptions sont attendues, vous pouvez utiliser le SDK Crashlytics les signaler en tant qu'événements non fatals. Ces événements sont enregistrés sur l'appareil puis envoyé avec le rapport d'événement fatal suivant ou lorsque l'utilisateur final redémarre le jeu.

Vous pouvez consigner des exceptions en C# à l'aide de la méthode suivante :

Crashlytics.LogException(Exception ex);

Vous pouvez consigner les exceptions attendues dans les blocs try/catch de votre jeu :

try {
    myMethodThatThrows();
} catch (Exception e) {
   Crashlytics.LogException(e);
   // handle your exception here!
}

Signaler les exceptions non détectées

Pour les exceptions non détectées qui ne plantent pas votre jeu (par exemple, les exceptions C# non détectées dans la logique de jeu), vous pouvez demander au SDK Crashlytics de les signaler en tant qu'événements fatals en définissant la propriété Crashlytics.ReportUncaughtExceptionsAsFatal sur true à l'endroit où vous initialisez Crashlytics dans votre projet Unity. Ces événements sont transmis à Crashlytics en temps réel, sans que vous ayez besoin de à l'utilisateur final de redémarrer le jeu.

Si vous signalez ces exceptions non détectées en tant qu'événements fatals, elles seront prises en compte dans vos statistiques d'utilisation sans plantage et dans les alertes de vitesse.

Notez que les plantages natifs sont toujours signalés en tant qu'événements fatals. Ces événements sont consignés sur l'appareil, puis envoyés lorsque l'utilisateur final redémarre le jeu.

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();
}

Inclure les rapports GWP-ASan pour déboguer les problèmes de corruption de mémoire

Pour les applications Android qui utilisent IL2CPP, Crashlytics peut vous aider à déboguer les plantages causées par des erreurs de mémoire native en collectant des rapports GWP-ASan. Ces erreurs liées à la mémoire peuvent être associées à une corruption de la mémoire dans votre application, ce qui est la principale cause des failles de sécurité des applications.

  • Vous pouvez afficher ces données dans une nouvelle section "Traces de la pile de mémoire" lorsque vous cliquez sur dans les détails d'un problème Tableau de bord Crashlytics.

  • Vous pouvez également utiliser le nouveau signal et le nouveau filtre "Rapport GWP-ASan" pour afficher rapidement tous les problèmes liés à ces données.

Vous pouvez obtenir des rapports de mémoire GWP-ASan si votre application utilise le dernier SDK Crashlytics pour Unity (version 10.7.0 ou ultérieure) et que GWP-ASan est explicitement activé (vous devez modifier votre fichier manifeste d'application Android). Si votre application comporte du code C++, vous pouvez tester votre configuration GWP-ASan à l'aide du exemple de code natif dans la documentation Android.

Ajouter des clés personnalisées

Les clés personnalisées vous permettent de connaître l'état spécifique de votre application pouvant entraîner un plantage. Vous pouvez associer des paires clé/valeur arbitraires à vos rapports d'erreur, puis utiliser les clés personnalisées pour rechercher et filtrer les rapports d'erreur dans la console Firebase.

  • Dans le tableau de bord Crashlytics, vous pouvez rechercher des problèmes correspondant à une clé personnalisée.
  • Lorsque vous examinez un problème spécifique dans la console, vous pouvez afficher les clés personnalisées associées à chaque événement (sous-onglet Clés) et même filtrer les événements par clés personnalisées (menu Filtrer en haut de la page).

Lorsqu'il est appelé plusieurs fois, les nouvelles valeurs des clés existantes mettent à jour la valeur, et seule la valeur la plus récente est capturée lorsqu'un plantage est enregistré.

Crashlytics.SetCustomKey(string key, string value);

Ajouter des messages de journal personnalisés

Les messages consignés sont associés à vos données de plantage et sont visibles dans le tableau de bord Firebase Crashlytics lorsque vous consultez un plantage spécifique.

Crashlytics.Log(string message);

Définir des identifiants utilisateur

Vous pouvez utiliser un numéro d'ID, un jeton ou une valeur hachée pour identifier de manière unique l'utilisateur final de votre application sans divulguer ni transmettre aucune de ses informations personnelles. Vous pouvez également effacer la valeur en la laissant vide . Cette valeur s'affiche dans le tableau de bord Firebase Crashlytics lorsque vous consultez un plantage spécifique.

Crashlytics.SetUserId(string identifier);

Obtenir les journaux des fils d'Ariane

Les journaux de breadcrumb vous permettent de mieux comprendre les interactions d'un utilisateur avec votre application avant un plantage, un problème non fatal ou un événement ANR. Ces journaux peuvent être utile lorsque vous essayez de reproduire et de déboguer un problème.

Les journaux de fil d'Ariane étant fournis par Google Analytics, vous devez besoin de activer Google Analytics pour votre projet Firebase ajouter le SDK Firebase pour Google Analytics à votre application. Une fois ces conditions remplies, les journaux de fil d'Ariane sont automatiquement incluses dans les données d'un événement dans l'onglet Journaux lorsque vous affichez les détails d'un problème.

SDK Analytics enregistre automatiquement l'événement screen_view ce qui permet aux journaux du fil d'Ariane d'afficher la liste des écrans vus avant le plantage, non fatal ou ANR. Un journal de fil d'Ariane screen_view contient un paramètre firebase_screen_class.

Les journaux de fil d'Ariane sont également renseignés par tous les événements personnalisés que vous enregistrez manuellement dans la session de l'utilisateur, y compris les données de paramètre de l'événement. Ces données peuvent aider à afficher une série d'actions utilisateur ayant conduit à un plantage, un problème non fatal ou un événement ANR.

Notez que vous pouvez contrôler la collecte et l'utilisation des données Google Analytics, qui inclut les données qui renseignent les journaux de fil d'Ariane.

Activer les rapports nécessitant une confirmation

Par défaut, Crashlytics collecte automatiquement les rapports d'erreur pour tous les utilisateurs de votre application. Vous pouvez donner aux utilisateurs plus de contrôle sur les données qu'ils envoient en autorisant d'activer le signalement des plantages.

Pour désactiver la collecte automatique et initialiser Crashlytics uniquement pour la sélection les utilisateurs, appelez le forçage de collecte des données Crashlytics au moment de l'exécution. La valeur de forçage persiste à chaque lancement de votre application afin que Crashlytics puisse collecter automatiquement des rapports. Pour désactiver la création automatique de rapports d'erreur, transmettez false comme valeur de remplacement. Si elle est définie sur false, la nouvelle valeur s'appliquent jusqu'à la prochaine exécution de l'application.

Crashlytics.IsCrashlyticsCollectionEnabled = true

Gérer les données Crash Insights

Les insights sur les plantages vous aident à résoudre les problèmes en comparant vos traces de pile anonymisées à celles d'autres applications Firebase, et en vous indiquant si votre problème fait partie d'une tendance plus large. Pour de nombreux problèmes, Crash Insights fournit même des ressources pour vous aider à déboguer le plantage.

Crash Insights utilise des données de plantage agrégées pour identifier les tendances de stabilité courantes. Si vous préférez ne pas partager les données de votre application, vous pouvez désactiver Crash Insights Dans le menu Crash Insights, en haut de la liste des problèmes Crashlytics dans la console Firebase.