Ce guide de démarrage rapide explique comment configurer Firebase Crashlytics dans votre application avec le SDK Firebase Crashlytics pour obtenir un plantage complet dans la console Firebase.
Pour configurer Crashlytics, vous devez effectuer des tâches dans la console Firebase et votre IDE (par exemple, en ajoutant un fichier de configuration Firebase et le fichier Crashlytics SDK). Pour terminer la configuration, vous devez forcer un plantage test afin d'envoyer votre premier le rapport d'erreur à Firebase.
Avant de commencer
Si ce n'est pas déjà fait, ajoutez Firebase à votre projet Unity. Si vous n'avez pas de projet Unity, vous pouvez télécharger un application exemple.
Recommandé: Pour obtenir automatiquement journaux de fil d'Ariane pour comprendre les actions des utilisateurs ayant entraîné un plantage, une erreur non fatale ou une erreur ANR, vous devez activer Google Analytics dans votre projet Firebase.
Si Google Analytics n'est pas activé dans votre projet Firebase existant, vous pouvez l'activer dans l'onglet Integrations (Intégrations) de
(Paramètres du projet) dans la console > Project settingsFirebase. Si vous créez un projet Firebase, activez Google Analytics au cours du workflow de création du projet.
Étape 1 : Ajouter 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 Unity de Firebase, puis décompressez-le à l'emplacement qui vous convient. Le SDK Unity Firebase n'est pas spécifique à la plate-forme.
Dans votre projet Unity ouvert, accédez à Composants > Import Package (Importer un package) > Package personnalisé :
Dans le SDK décompressé, choisissez 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 Import Unity Package (Importer un package Unity) qui s'ouvre, cliquez sur Import (Importer).
Étape 2 : Initialiser Crashlytics
Créez un script C#, puis ajoutez-le à un
GameObject
dans la scène.Ouvrez votre première scène, puis créez une
GameObject
vide nomméeCrashlyticsInitializer
Cliquez sur Add Component (Ajouter un composant) dans l'Inspector (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) Configurer l'importation 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 d'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 importer des symboles.
Le SDK Unity 8.6.1 (ou version ultérieure) de Crashlytics inclut automatiquement les rapports d'erreur du NDK, qui permet à Crashlytics de signaler automatiquement Unity IL2CPP plante sur Android. Toutefois, pour afficher les traces de pile symbolisées des plantages de bibliothèques natives dans le tableau de bord Crashlytics, vous devez importer des informations sur les symboles au moment de la compilation à l'aide de la CLI Firebase.
Pour configurer l'importation de symboles, suivez les instructions pour Installez la CLI Firebase.
Si vous avez déjà installé la CLI, assurez-vous de installer la dernière version.
Étape 4 : Créez votre projet et importez des symboles
iOS+ (plate-forme Apple)
Dans la boîte de dialogue Build Settings (Paramètres de compilation), exportez votre projet vers un espace de travail Xcode.
Créez votre application.
Pour les plates-formes Apple, le plug-in Firebase Unity Editor configure automatiquement votre projet Xcode pour générer et importer un fichier de symboles compatible avec Crashlytics sur les serveurs Firebase pour chaque build.
Android
Dans la boîte de dialogue Build Settings (Paramètres de compilation), effectuez l'une des opérations suivantes :
Exporter vers un projet Android Studio pour créer votre projet ou
Créez votre APK directement depuis l'éditeur Unity.
Avant de commencer, assurez-vous que la case Créer des symboles.zip est cochés dans la boîte de dialogue Build Settings (Paramètres de compilation).
Une fois la compilation terminée, générez un fichier de symboles compatible avec Crashlytics et importez-le sur les serveurs Firebase en exécutant la commande CLI Firebase suivante :
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : votre ID d'application Android Firebase (et non votre nom de package)
Exemple d'ID d'application Android Firebase :1:567383003300:android:17104a2ced0c9b9b
PATH/TO/SYMBOLS : chemin d'accès au fichier de symboles généré par la CLI
Exportées vers un projet Android Studio : PATH/TO/SYMBOLS est le répertoire
unityLibrary/symbols
. qui est créé dans la racine du projet exporté après la compilation de l'application via Gradle ou Android Studio.Création de l'APK directement depuis Unity : PATH/TO/SYMBOLS est le chemin d'accès au fichier de symboles compressé. généré dans le répertoire racine du projet une fois la compilation terminée Par exemple:
).myproject/myapp-1.0-v100.symbols.zip
Afficher les options avancées pour utiliser la commande CLI Firebase pour générer et importer des fichiers de symboles
Option Description --generator=csym
Utilise l'ancien générateur de fichiers de symboles cSYM au lieu du générateur de Breakpad par défaut
Non recommandé. 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 le paramètre par défaut pour la génération de fichiers de symboles est Breakpad. N'utilisez cet indicateur que si vous avez ajouté
dans votre configuration de compilation et que vous souhaitez la remplacer Breakpad à la place.symbolGenerator { csym() }
--dry-run
Génère les fichiers de symboles, mais ne les importe 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: Forcez un test de plantage pour terminer la configuration
Pour terminer la configuration de Crashlytics et afficher les données initiales dans le tableau de bord Crashlytics de la console Firebase, vous devez forcer un plantage de test.
Recherchez un
GameObject
existant, puis ajoutez-y le script suivant. Ce provoque un plantage du 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 importez les informations sur les symboles une fois le build terminé.
iOS et versions ultérieures : le plug-in Firebase Unity Editor configure automatiquement votre projet Xcode pour importer votre fichier de symboles.
Android: pour vos applications Android qui utilisent IL2CPP, exécutez la Firebase la commande
crashlytics:symbols:upload
de la CLI pour importer 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 plantage de test.
Si vous avez actualisé la console et que le plantage du test ne s'affiche toujours pas après cinq minutes, Activer la journalisation du débogage pour voir si votre appli envoie des rapports d'erreur.
C'est tout ! Crashlytics surveille désormais les plantages de votre application. Accédez au tableau de bord Crashlytics pour afficher et examiner tous vos rapports et statistiques.
Étapes suivantes
- (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 collecter 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. Pour profiter de cette fonctionnalité de débogage, assurez-vous que votre application utilise le dernier SDK Crashlytics pour Unity (version 10.7.0 ou ultérieure) et dispose GWP-ASan est explicitement activé (vous devez modifier votre fichier manifeste d'application Android).
- Personnalisez la configuration de vos rapports de plantage en ajoutant des rapports, des journaux, des clés et le suivi des erreurs non fatales.
- Procédez à l'intégration avec Google Play pour que Vous pouvez filtrer les rapports d'erreur de votre application Android à l'aide du suivi Google Play directement dans le Crashlytics. Vous pouvez ainsi concentrer votre tableau de bord sur des builds spécifiques.