Premiers pas avec Crashlytics pour Unity

Sélectionnez une plate-forme : iOS+ Android Android NDK Flutter Unity


Ce guide explique comment commencer à utiliser Firebase Crashlytics dans votre projet Unity.

Une fois que vous avez configuré le Firebase Crashlytics SDK dans votre application, vous pouvez 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 votre IDE (comme l'ajout d'un fichier de configuration Firebase et du SDK Crashlytics ). Pour terminer la configuration, vous devez forcer un plantage de test afin d'envoyer votre premier rapport d'erreur à Firebase.

Avant de commencer

  1. 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 exemple d'application.

  2. Recommandé : Pour obtenir automatiquement des journaux de fil d'Ariane afin de comprendre les actions de l'utilisateur ayant conduit à un plantage, un problème non fatal ou un événement ANR, vous devez activer Google Analytics dans votre projet Firebase.

É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 Firebase Unity SDK et ajouté les packages décrits dans les étapes suivantes.

  1. Téléchargez le Firebase Unity SDK, puis décompressez-le dans un emplacement pratique. Le Firebase Unity SDK n'est pas spécifique à une plate-forme.

  2. Dans votre projet Unity ouvert, cliquez sur Assets (Éléments) > Import Package (Importer un package) > Custom Package (Package personnalisé).

  3. Dans le SDK décompressé, sélectionnez le SDK Crashlytics pour l'importer (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.

  4. Dans la fenêtre Import Unity Package (Importer un package Unity) qui s'ouvre, cliquez sur Import (Importer).

Étape 2 : Initialisez Crashlytics

  1. Créez un script C#, puis ajoutez-le à un GameObject dans la scène.

    1. Ouvrez votre première scène, puis créez un GameObject vide nommé CrashlyticsInitializer.

    2. Cliquez sur Add Component (Ajouter un composant) dans l'Inspector (Inspecteur) du nouvel objet.

    3. Sélectionnez votre CrashlyticsInit script pour l'ajouter à l' CrashlyticsInitializer objet.

  2. 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 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 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+ de Crashlytics inclut automatiquement les rapports d'erreur NDK, ce qui permet à Crashlytics de signaler automatiquement les plantages Unity IL2CPP sur Android. Toutefois, pour afficher les traces de pile symbolisées des plantages de la bibliothèque native dans le tableau de bord Crashlytics, vous devez importer les 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 installer la CLI Firebase.

Si vous avez déjà installé la CLI, assurez-vous de la mettre à jour vers la dernière version.

Étape 4 : Créez votre projet et importez des symboles

iOS+ (plate-forme Apple)

  1. Dans la boîte de dialogue Build Settings (Paramètres de compilation), exportez votre projet vers un espace de travail Xcode.

  2. 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 compilation.

Android

  1. Dans la boîte de dialogue Build Settings (Paramètres de compilation), effectuez l'une des opérations suivantes :

    • Exportez votre projet vers un projet Android Studio pour le compiler ; ou

    • Créez votre APK directement à partir de l'éditeur Unity.
      Avant de compiler, assurez-vous que la case à cocher Create symbols.zip (Créer symbols.zip) est cochée dans la boîte de dialogue Build Settings (Paramètres de compilation).

  2. Une fois votre compilation terminée, générez un Crashlytics-compatible fichier de symboles et importez-le sur les serveurs Firebase en exécutant la commande suivante Firebase de la CLI :

    firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
    • FIREBASE_APP_ID : ID de votre application Firebase Android (et non le nom de votre package)
      Exemple d'ID d'application Firebase Android : 1:567383003300:android:17104a2ced0c9b9b

    • PATH/TO/SYMBOLS : chemin d'accès au fichier de symboles généré par la CLI

      • Exporté vers un projet Android Studio : PATH/TO/SYMBOLS correspond au 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.

      • APK créé directement dans Unity : PATH/TO/SYMBOLS correspond au 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 Firebase commande de la CLI afin de générer et d'importer un fichier de symboles

    Option Description
    --generator=csym

    Utilise l'ancien générateur de fichiers de symboles cSYM au lieu du générateur Breakpad par défaut

    L'utilisation n'est pas 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 de fichiers de symboles est Breakpad. N'utilisez cette option que si vous avez ajouté symbolGenerator { csym() } dans votre configuration de compilation et que vous souhaitez la remplacer par Breakpad.

    --dry-run

    Génère les fichiers de symboles, mais ne les importe pas

    Cette option 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 plantage de test pour terminer la configuration

Pour terminer la configuration de Crashlytics et afficher les données initiales dans le Crashlytics tableau de bord de la Firebase console, vous devez forcer un test plantage.

  1. Recherchez un GameObject existant, puis ajoutez-y le script suivant. Ce script provoquera un plantage 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");
            }
        }
    }
  2. Créez votre application et importez les informations sur les symboles une fois la compilation terminée.

    • iOS+ : 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 CLI crashlytics:symbols:upload commande pour importer votre fichier de symboles.

  3. 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.

  4. Accédez au Crashlytics tableau de bord de la Firebase console pour afficher votre plantage de test.

    Si vous avez actualisé la console et que vous ne voyez toujours pas le plantage de test après cinq minutes, activez la journalisation de débogage pour voir si votre application envoie des rapports d'erreur.


C'est tout ! Crashlytics surveille désormais votre application pour détecter les plantages. Accédez au Crashlytics tableau de bord pour afficher et examiner tous vos rapports et statistiques.

Étapes suivantes