了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Premiers pas avec Firebase Crashlytics

Ce guide de 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 test de plantage pour envoyer votre premier rapport de plantage à Firebase.

Avant que tu commences

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

  2. Recommandé : pour obtenir des fonctionnalités telles que des utilisateurs sans plantage, des journaux de fil d'Ariane et des alertes de vélocité, vous devez activer Google Analytics dans votre projet Firebase.

    • Si Google Analytics n'est pas activé pour votre projet Firebase existant, vous pouvez activer Google Analytics à partir de l' onglet Intégrations de vos > Paramètres du projet dans la console Firebase.

    • Si vous créez un nouveau projet Firebase, activez Google Analytics lors du workflow de création de 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é le package Crashlytics.

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

  2. Dans votre projet Unity ouvert, accédez à Assets > Import Package > Custom Package .

  3. À partir du SDK décompressé, sélectionnez pour importer le SDK Crashlytics ( FirebaseCrashlytics.unitypackage ).

    Vous pouvez également importer tout autre produit Firebase pris en charge .

  4. Dans la fenêtre Importer un package Unity , cliquez sur Importer .

Étape 2 : Initialiser Crashlytics

  1. Créez un nouveau 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 Ajouter un composant dans l' inspecteur pour le nouvel objet.

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

  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) Préparez-vous pour 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 les rapports de plantage NDK, ce qui permet à Crashlytics de signaler automatiquement les plantages Unity IL2CPP sur Android. Cependant, pour voir les traces de pile symbolisées pour les pannes de la bibliothèque native dans le tableau de bord Crashlytics, vous devez télécharger les informations de symbole au moment de la génération à l'aide de la CLI Firebase.

Pour vous préparer au téléchargement de symboles, suivez les instructions d' installation de la CLI Firebase .

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

Étape 4 : Construisez votre projet et téléchargez les symboles

iOS+ (plateforme Apple)

  1. Dans la boîte de dialogue Build Settings , 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 télécharger un fichier de symboles compatible Crashlytics sur les serveurs Firebase pour chaque version.

Android

  1. Dans la boîte de dialogue Build Settings , effectuez l'une des opérations suivantes :

    • Exportez vers un projet Android Studio pour créer votre projet ; ou

    • Créez votre APK directement depuis l'éditeur Unity.
      Avant de créer, assurez-vous que la case Créer des symboles.zip est cochée dans la boîte de dialogue Paramètres de génération .

  2. Une fois votre 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 identifiant d'application Android Firebase (pas le nom de votre package)
      Exemple d'ID d'application Android Firebase : 1:567383003300:android:17104a2ced0c9b9b

    • 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éé dans la racine du projet exporté après avoir créé l'application via Gradle ou Android Studio.

      • Construit 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 construction est terminée (par exemple : myproject/myapp-1.0-v100.symbols.zip ).

    Afficher les options avancées d'utilisation de la commande CLI Firebase 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

    Non recommandé pour l'utilisation. 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 cet indicateur que si vous avez ajouté symbolGenerator { csym() } dans votre configuration de construction et que 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 plantage de test 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.

  1. Trouvez un GameObject existant, puis ajoutez-y le script suivant. Ce script provoquera 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");
            }
        }
    }
    
  2. Créez votre application et téléchargez les informations sur les symboles une fois votre génération terminée.

    • iOS+ : Le plug-in 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.

  3. Exécutez votre application. Une fois votre application en cours d'exécution, consultez 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 tableau de bord Crashlytics de la console Firebase pour voir votre plantage 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 de débogage pour voir si votre application envoie des rapports de plantage.


Et c'est tout! Crashlytics surveille maintenant votre application pour détecter les plantages. Visitez le tableau de bord Crashlytics pour afficher et étudier tous vos rapports et statistiques.

Prochaines étapes

  • Intégrez Google Play afin de pouvoir filtrer les rapports de plantage 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.