Ce démarrage rapide décrit comment configurer Firebase Crashlytics dans votre application avec le SDK Firebase Crashlytics afin que vous puissiez obtenir des rapports d'erreur complets dans la console Firebase.
La configuration de Crashlytics nécessite des tâches à la fois dans la console Firebase et dans votre IDE (comme l'ajout d'un fichier de configuration Firebase et du SDK Crashlytics). Pour terminer la configuration, vous devrez forcer un crash test pour envoyer votre premier rapport de crash à Firebase.
Avant que tu commences
Si vous ne l'avez pas déjà fait, ajoutez Firebase à votre projet Unity. Si vous n'avez pas de projet Unity, vous pouvez télécharger un exemple d'application .
Recommandé : pour obtenir automatiquement des journaux de fil d'Ariane afin de comprendre les actions des utilisateurs ayant conduit à un crash, un événement non fatal ou ANR, vous devez activer Google Analytics dans votre projet Firebase.
Si Google Analytics n'est pas activé sur votre projet Firebase existant, vous pouvez activer Google Analytics à partir de l' onglet Intégrations de votre
Si vous créez un nouveau projet Firebase, activez Google Analytics pendant le workflow de création du projet.
Étape 1 : Ajoutez le SDK Crashlytics à votre application
Notez que lorsque vous avez enregistré votre projet Unity avec votre projet Firebase, vous avez peut-être déjà téléchargé le SDK Firebase Unity et ajouté les packages décrits dans les étapes suivantes.
Téléchargez le SDK Firebase Unity , puis décompressez le SDK dans un endroit pratique. Le SDK Firebase Unity n'est pas spécifique à la plate-forme.
Dans votre projet Unity ouvert, accédez à Assets > Import Package > Custom Package .
À partir du SDK décompressé, sélectionnez d'importer le SDK Crashlytics (
FirebaseCrashlytics.unitypackage
).Pour profiter des journaux de fil d'Ariane, ajoutez également le SDK Firebase pour Google Analytics à votre application (
FirebaseAnalytics.unitypackage
). Assurez-vous que Google Analytics est activé dans votre projet Firebase.Dans la fenêtre Importer un package Unity , cliquez sur Importer .
Étape 2 : Initialiser Crashlytics
Créez un nouveau script C#, puis ajoutez-le à un
GameObject
dans la scène.Ouvrez votre première scène, puis créez un
GameObject
vide nomméCrashlyticsInitializer
.Cliquez sur Ajouter un composant dans l' inspecteur du nouvel objet.
Sélectionnez votre script
CrashlyticsInit
pour l'ajouter à l'objetCrashlyticsInitializer
.
Initialisez Crashlytics dans la méthode
Start
du 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() // ... }
Étape 3 : (Android uniquement) Configurez le téléchargement de symboles
Cette étape n'est requise que pour les applications Android qui utilisent IL2CPP.
Pour les applications Android qui utilisent le backend de script Mono de Unity, ces étapes ne sont pas nécessaires.
Pour les applications de la plate-forme Apple, ces étapes ne sont pas nécessaires car le plug-in Firebase Unity Editor configure automatiquement votre projet Xcode pour télécharger des symboles.
Le SDK Unity 8.6.1+ de Crashlytics inclut automatiquement le rapport de crash NDK, ce qui permet à Crashlytics de signaler automatiquement les crashs de Unity IL2CPP sur Android. Cependant, pour afficher les traces de pile symbolisées pour les pannes de bibliothèque native dans le tableau de bord Crashlytics, vous devez télécharger les informations sur les symboles au moment de la construction à l'aide de la CLI Firebase.
Pour configurer le téléchargement de symboles, suivez les instructions pour installer la CLI Firebase .
Si vous avez déjà installé la CLI, assurez-vous de mettre à jour vers sa dernière version .
Étape 4 : Construisez votre projet et téléchargez des symboles
iOS+ (plateforme Apple)
Dans la boîte de dialogue Paramètres de construction , exportez votre projet vers un espace de travail Xcode.
Créez votre application.
Pour les plates-formes Apple, le plugin Firebase Unity Editor configure automatiquement votre projet Xcode pour générer et télécharger un fichier de symboles compatible Crashlytics sur les serveurs Firebase pour chaque build.
Android
Dans la boîte de dialogue Paramètres de construction , effectuez l'une des opérations suivantes :
Exportez vers un projet Android Studio pour créer votre projet ; ou
Créez votre APK directement à partir de l'éditeur Unity.
Avant de construire, assurez-vous que la case Créer des symboles.zip est cochée dans la boîte de dialogue Paramètres de construction .
Une fois votre build terminée, générez un fichier de symboles compatible Crashlytics et téléchargez-le sur les serveurs Firebase en exécutant la commande Firebase CLI suivante :
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : ID de votre application Firebase Android (pas le nom de votre package)
Exemple d'ID d'application Android Firebase :1:567383003300:android:17104a2ced0c9b9b
Voici deux façons de trouver votre identifiant d'application Firebase :
Dans votre fichier
google-services.json
, votre identifiant d'application est la valeurmobilesdk_app_id
; ouDans la console Firebase, accédez aux paramètres de votre projet . Faites défiler jusqu'à la carte Vos applications , puis cliquez sur l'application Firebase souhaitée pour trouver son identifiant d'application.
PATH/TO/SYMBOLS : Le chemin d'accès au fichier de symboles généré par la CLI
Exporté vers un projet Android Studio — PATH/TO/SYMBOLS est le répertoire
unityLibrary/symbols
, qui est créé à la racine du projet exporté après avoir créé l'application via Gradle ou Android Studio.Créez l'APK directement depuis Unity — PATH/TO/SYMBOLS est le chemin du fichier de symboles compressé généré dans le répertoire racine du projet lorsque votre build est terminé (par exemple :
myproject/myapp-1.0-v100.symbols.zip
).
Afficher les options avancées d'utilisation de la commande Firebase CLI pour la génération et le téléchargement de fichiers de symboles
Drapeau Description --generator=csym
Utilise l'ancien générateur de fichiers de symboles cSYM au lieu du générateur Breakpad par défaut
Utilisation non recommandée. Nous vous recommandons d'utiliser le générateur de fichiers de symboles Breakpad par défaut.
--generator=breakpad
Utilise le générateur de fichiers de symboles Breakpad
Notez que la valeur par défaut pour la génération du fichier de symboles est Breakpad. N'utilisez ce drapeau que si vous avez ajouté
symbolGenerator { csym() }
dans votre configuration de build et vous souhaitez le remplacer pour utiliser Breakpad à la place.--dry-run
Génère les fichiers de symboles mais ne les télécharge pas
Cet indicateur est utile si vous souhaitez inspecter le contenu des fichiers envoyés.
--debug
Fournit des informations de débogage supplémentaires
Étape 5 : Forcer un crash de test pour terminer la configuration
Pour terminer la configuration de Crashlytics et consulter les données initiales dans le tableau de bord Crashlytics de la console Firebase, vous devez forcer un crash de test.
Recherchez un
GameObject
existant, puis ajoutez-y le script suivant. Ce script provoquera un crash de test quelques secondes après l'exécution de votre application.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"); } } }
Créez votre application et téléchargez les informations sur les symboles une fois votre construction terminée.
iOS+ : Le plugin Firebase Unity Editor configure automatiquement votre projet Xcode pour télécharger votre fichier de symboles.
Android : pour vos applications Android qui utilisent IL2CPP, exécutez la commande Firebase CLI
crashlytics:symbols:upload
pour télécharger votre fichier de symboles.
Exécutez votre application. Une fois votre application en cours d'exécution, surveillez le journal de l'appareil et attendez que l'exception se déclenche à partir de
CrashlyticsTester
.iOS+ : affichez les journaux dans le volet inférieur de Xcode.
Android : affichez les journaux en exécutant la commande suivante dans le terminal :
adb logcat
.
Accédez au tableau de bord Crashlytics de la console Firebase pour voir votre crash de test.
Si vous avez actualisé la console et que vous ne voyez toujours pas le plantage du test après cinq minutes, activez la journalisation du débogage pour voir si votre application envoie des rapports de plantage.
Et c'est tout! Crashlytics surveille désormais les plantages de votre application. Visitez le tableau de bord Crashlytics pour afficher et étudier tous vos rapports et statistiques.
Prochaines étapes
- (Recommandé) Pour les applications Android qui utilisent IL2CPP, obtenez de l'aide pour déboguer les plantages causés par des erreurs de mémoire native en collectant les rapports GWP-ASan . Ces erreurs liées à la mémoire peuvent être associées à une corruption de la mémoire au sein de votre application, qui est la principale cause de vulnérabilités de sécurité des applications. Pour profiter de cette fonctionnalité de débogage, assurez-vous que votre application utilise le dernier SDK Crashlytics pour Unity (v10.7.0+) et que GWP-ASan est explicitement activé (vous oblige à modifier votre manifeste d'application Android ).
- Personnalisez la configuration de votre rapport d'erreur en ajoutant des rapports opt-in, des journaux, des clés et un suivi des erreurs non fatales.
- Intégrez Google Play afin de pouvoir filtrer les rapports d'erreur de votre application Android par suivi Google Play directement dans le tableau de bord Crashlytics. Cela vous permet de mieux concentrer votre tableau de bord sur des builds spécifiques.
,
Ce démarrage rapide décrit comment configurer Firebase Crashlytics dans votre application avec le SDK Firebase Crashlytics afin que vous puissiez obtenir des rapports d'erreur complets dans la console Firebase.
La configuration de Crashlytics nécessite des tâches à la fois dans la console Firebase et dans votre IDE (comme l'ajout d'un fichier de configuration Firebase et du SDK Crashlytics). Pour terminer la configuration, vous devrez forcer un crash test pour envoyer votre premier rapport de crash à Firebase.
Avant que tu commences
Si vous ne l'avez pas déjà fait, ajoutez Firebase à votre projet Unity. Si vous n'avez pas de projet Unity, vous pouvez télécharger un exemple d'application .
Recommandé : pour obtenir automatiquement des journaux de fil d'Ariane afin de comprendre les actions des utilisateurs ayant conduit à un crash, un événement non fatal ou ANR, vous devez activer Google Analytics dans votre projet Firebase.
Si Google Analytics n'est pas activé sur votre projet Firebase existant, vous pouvez activer Google Analytics à partir de l' onglet Intégrations de votre
Si vous créez un nouveau projet Firebase, activez Google Analytics pendant le workflow de création du projet.
Étape 1 : Ajoutez le SDK Crashlytics à votre application
Notez que lorsque vous avez enregistré votre projet Unity avec votre projet Firebase, vous avez peut-être déjà téléchargé le SDK Firebase Unity et ajouté les packages décrits dans les étapes suivantes.
Téléchargez le SDK Firebase Unity , puis décompressez le SDK dans un endroit pratique. Le SDK Firebase Unity n'est pas spécifique à la plate-forme.
Dans votre projet Unity ouvert, accédez à Assets > Import Package > Custom Package .
À partir du SDK décompressé, sélectionnez d'importer le SDK Crashlytics (
FirebaseCrashlytics.unitypackage
).Pour profiter des journaux de fil d'Ariane, ajoutez également le SDK Firebase pour Google Analytics à votre application (
FirebaseAnalytics.unitypackage
). Assurez-vous que Google Analytics est activé dans votre projet Firebase.Dans la fenêtre Importer un package Unity , cliquez sur Importer .
Étape 2 : Initialiser Crashlytics
Créez un nouveau script C#, puis ajoutez-le à un
GameObject
dans la scène.Ouvrez votre première scène, puis créez un
GameObject
vide nomméCrashlyticsInitializer
.Cliquez sur Ajouter un composant dans l' inspecteur du nouvel objet.
Sélectionnez votre script
CrashlyticsInit
pour l'ajouter à l'objetCrashlyticsInitializer
.
Initialisez Crashlytics dans la méthode
Start
du 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() // ... }
Étape 3 : (Android uniquement) Configurez le téléchargement de symboles
Cette étape n'est requise que pour les applications Android qui utilisent IL2CPP.
Pour les applications Android qui utilisent le backend de script Mono de Unity, ces étapes ne sont pas nécessaires.
Pour les applications de la plate-forme Apple, ces étapes ne sont pas nécessaires car le plug-in Firebase Unity Editor configure automatiquement votre projet Xcode pour télécharger des symboles.
Le SDK Unity 8.6.1+ de Crashlytics inclut automatiquement le rapport de crash NDK, ce qui permet à Crashlytics de signaler automatiquement les crashs de Unity IL2CPP sur Android. Cependant, pour afficher les traces de pile symbolisées pour les pannes de bibliothèque native dans le tableau de bord Crashlytics, vous devez télécharger les informations sur les symboles au moment de la construction à l'aide de la CLI Firebase.
Pour configurer le téléchargement de symboles, suivez les instructions pour installer la CLI Firebase .
Si vous avez déjà installé la CLI, assurez-vous de mettre à jour vers sa dernière version .
Étape 4 : Construisez votre projet et téléchargez des symboles
iOS+ (plateforme Apple)
Dans la boîte de dialogue Paramètres de construction , exportez votre projet vers un espace de travail Xcode.
Créez votre application.
Pour les plates-formes Apple, le plugin Firebase Unity Editor configure automatiquement votre projet Xcode pour générer et télécharger un fichier de symboles compatible Crashlytics sur les serveurs Firebase pour chaque build.
Android
Dans la boîte de dialogue Paramètres de construction , effectuez l'une des opérations suivantes :
Exportez vers un projet Android Studio pour créer votre projet ; ou
Créez votre APK directement à partir de l'éditeur Unity.
Avant de construire, assurez-vous que la case Créer des symboles.zip est cochée dans la boîte de dialogue Paramètres de construction .
Une fois votre build terminée, générez un fichier de symboles compatible Crashlytics et téléchargez-le sur les serveurs Firebase en exécutant la commande Firebase CLI suivante :
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : ID de votre application Firebase Android (pas le nom de votre package)
Exemple d'ID d'application Android Firebase :1:567383003300:android:17104a2ced0c9b9b
Voici deux façons de trouver votre identifiant d'application Firebase :
Dans votre fichier
google-services.json
, votre identifiant d'application est la valeurmobilesdk_app_id
; ouDans la console Firebase, accédez aux paramètres de votre projet . Faites défiler jusqu'à la carte Vos applications , puis cliquez sur l'application Firebase souhaitée pour trouver son identifiant d'application.
PATH/TO/SYMBOLS : Le chemin d'accès au fichier de symboles généré par la CLI
Exporté vers un projet Android Studio — PATH/TO/SYMBOLS est le répertoire
unityLibrary/symbols
, qui est créé à la racine du projet exporté après avoir créé l'application via Gradle ou Android Studio.Créez l'APK directement depuis Unity — PATH/TO/SYMBOLS est le chemin du fichier de symboles compressé généré dans le répertoire racine du projet lorsque votre build est terminé (par exemple :
myproject/myapp-1.0-v100.symbols.zip
).
Afficher les options avancées d'utilisation de la commande Firebase CLI pour la génération et le téléchargement de fichiers de symboles
Drapeau Description --generator=csym
Utilise l'ancien générateur de fichiers de symboles cSYM au lieu du générateur Breakpad par défaut
Utilisation non recommandée. Nous vous recommandons d'utiliser le générateur de fichiers de symboles Breakpad par défaut.
--generator=breakpad
Utilise le générateur de fichiers de symboles Breakpad
Notez que la valeur par défaut pour la génération du fichier de symboles est Breakpad. N'utilisez ce drapeau que si vous avez ajouté
symbolGenerator { csym() }
dans votre configuration de build et vous souhaitez le remplacer pour utiliser Breakpad à la place.--dry-run
Génère les fichiers de symboles mais ne les télécharge pas
Cet indicateur est utile si vous souhaitez inspecter le contenu des fichiers envoyés.
--debug
Fournit des informations de débogage supplémentaires
Étape 5 : Forcer un crash de test pour terminer la configuration
Pour terminer la configuration de Crashlytics et consulter les données initiales dans le tableau de bord Crashlytics de la console Firebase, vous devez forcer un crash de test.
Recherchez un
GameObject
existant, puis ajoutez-y le script suivant. Ce script provoquera un crash de test quelques secondes après l'exécution de votre application.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"); } } }
Créez votre application et téléchargez les informations sur les symboles une fois votre construction terminée.
iOS+ : Le plugin Firebase Unity Editor configure automatiquement votre projet Xcode pour télécharger votre fichier de symboles.
Android : pour vos applications Android qui utilisent IL2CPP, exécutez la commande Firebase CLI
crashlytics:symbols:upload
pour télécharger votre fichier de symboles.
Exécutez votre application. Une fois votre application en cours d'exécution, surveillez le journal de l'appareil et attendez que l'exception se déclenche à partir de
CrashlyticsTester
.iOS+ : affichez les journaux dans le volet inférieur de Xcode.
Android : affichez les journaux en exécutant la commande suivante dans le terminal :
adb logcat
.
Accédez au tableau de bord Crashlytics de la console Firebase pour voir votre crash de test.
Si vous avez actualisé la console et que vous ne voyez toujours pas le plantage du test après cinq minutes, activez la journalisation du débogage pour voir si votre application envoie des rapports de plantage.
Et c'est tout! Crashlytics surveille désormais les plantages de votre application. Visitez le tableau de bord Crashlytics pour afficher et étudier tous vos rapports et statistiques.
Prochaines étapes
- (Recommandé) Pour les applications Android qui utilisent IL2CPP, obtenez de l'aide pour déboguer les plantages causés par des erreurs de mémoire native en collectant les rapports GWP-ASan . Ces erreurs liées à la mémoire peuvent être associées à une corruption de la mémoire au sein de votre application, qui est la principale cause de vulnérabilités de sécurité des applications. Pour profiter de cette fonctionnalité de débogage, assurez-vous que votre application utilise le dernier SDK Crashlytics pour Unity (v10.7.0+) et que GWP-ASan est explicitement activé (vous oblige à modifier votre manifeste d'application Android ).
- Personnalisez la configuration de votre rapport d'erreur en ajoutant des rapports opt-in, des journaux, des clés et un suivi des erreurs non fatales.
- Intégrez Google Play afin de pouvoir filtrer les rapports d'erreur de votre application Android par suivi Google Play directement dans le tableau de bord Crashlytics. Cela vous permet de mieux concentrer votre tableau de bord sur des builds spécifiques.