Beginnen Sie mit Firebase Crashlytics

In dieser Schnellstartanleitung wird beschrieben, wie Sie Firebase Crashlytics in Ihrer App mit dem Firebase Crashlytics SDK einrichten, damit Sie umfassende Absturzberichte in der Firebase-Konsole erhalten.

Das Einrichten von Crashlytics erfordert Aufgaben sowohl in der Firebase-Konsole als auch in Ihrer IDE (z. B. das Hinzufügen einer Firebase-Konfigurationsdatei und des Crashlytics SDK). Um die Einrichtung abzuschließen, müssen Sie einen Testabsturz erzwingen, um Ihren ersten Absturzbericht an Firebase zu senden.

Bevor Sie beginnen

  1. Falls noch nicht geschehen, fügen Sie Firebase zu Ihrem Unity-Projekt hinzu. Wenn Sie kein Unity-Projekt haben, können Sie eine Beispiel-App herunterladen.

  2. Empfohlen : Um automatisch Breadcrumb-Protokolle zu erhalten, um Benutzeraktionen zu verstehen, die zu einem Absturz, einem nicht schwerwiegenden Ereignis oder einem ANR-Ereignis führen, müssen Sie Google Analytics in Ihrem Firebase-Projekt aktivieren.

    • Wenn in Ihrem bestehenden Firebase-Projekt Google Analytics nicht aktiviert ist, können Sie Google Analytics über die Registerkarte „Integrationen“ Ihres Projekts aktivieren > Projekteinstellungen in der Firebase-Konsole.

    • Wenn Sie ein neues Firebase-Projekt erstellen, aktivieren Sie Google Analytics während des Projekterstellungsworkflows.

Schritt 1 : Fügen Sie das Crashlytics SDK zu Ihrer App hinzu

Beachten Sie, dass Sie bei der Registrierung Ihres Unity-Projekts bei Ihrem Firebase-Projekt möglicherweise bereits das Firebase Unity SDK heruntergeladen und die in den folgenden Schritten beschriebenen Pakete hinzugefügt haben.

  1. Laden Sie das Firebase Unity SDK herunter und entpacken Sie das SDK an einem geeigneten Ort. Das Firebase Unity SDK ist nicht plattformspezifisch.

  2. Navigieren Sie in Ihrem geöffneten Unity-Projekt zu Assets > Paket importieren > Benutzerdefiniertes Paket .

  3. Wählen Sie aus dem entpackten SDK aus, dass Sie das Crashlytics SDK ( FirebaseCrashlytics.unitypackage ) importieren möchten.

    Um Breadcrumb-Protokolle zu nutzen, fügen Sie Ihrer App auch das Firebase SDK für Google Analytics hinzu ( FirebaseAnalytics.unitypackage ). Stellen Sie sicher, dass Google Analytics in Ihrem Firebase-Projekt aktiviert ist .

  4. Klicken Sie im Fenster „Unity-Paket importieren“ auf „Importieren“ .

Schritt 2 : Crashlytics initialisieren

  1. Erstellen Sie ein neues C#-Skript und fügen Sie es dann einem GameObject in der Szene hinzu.

    1. Öffnen Sie Ihre erste Szene und erstellen Sie dann ein leeres GameObject mit dem Namen CrashlyticsInitializer .

    2. Klicken Sie im Inspektor für das neue Objekt auf Komponente hinzufügen .

    3. Wählen Sie Ihr CrashlyticsInit Skript aus, um es dem CrashlyticsInitializer Objekt hinzuzufügen.

  2. Initialisieren Sie Crashlytics in der Start -Methode des Skripts:

    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()
        // ...
    }

Schritt 3 : (Nur Android) Richten Sie das Hochladen von Symbolen ein

Dieser Schritt ist nur für Android-Apps erforderlich, die IL2CPP verwenden.

  • Für Android-Apps, die das Mono-Skript-Backend von Unity verwenden, sind diese Schritte nicht erforderlich.

  • Für Apple-Plattform-Apps sind diese Schritte nicht erforderlich, da das Firebase Unity Editor-Plugin Ihr Xcode-Projekt automatisch zum Hochladen von Symbolen konfiguriert.

Das Unity SDK 8.6.1+ von Crashlytics umfasst automatisch die NDK-Absturzberichterstattung, die es Crashlytics ermöglicht, Unity IL2CPP- Abstürze auf Android automatisch zu melden. Um jedoch symbolisierte Stack-Traces für Abstürze nativer Bibliotheken im Crashlytics-Dashboard anzuzeigen, müssen Sie Symbolinformationen zur Build-Zeit mit der Firebase-CLI hochladen.

Um das Hochladen von Symbolen einzurichten, befolgen Sie die Anweisungen zur Installation der Firebase-CLI .

Wenn Sie die CLI bereits installiert haben, stellen Sie sicher, dass Sie auf die neueste Version aktualisieren .

Schritt 4 : Erstellen Sie Ihr Projekt und laden Sie Symbole hoch

iOS+ (Apple-Plattform)

  1. Exportieren Sie Ihr Projekt im Dialogfeld „Build-Einstellungen“ in einen Xcode-Arbeitsbereich.

  2. Erstellen Sie Ihre App.

    Für Apple-Plattformen konfiguriert das Firebase Unity Editor-Plugin Ihr Xcode-Projekt automatisch so, dass für jeden Build eine Crashlytics-kompatible Symboldatei generiert und auf Firebase-Server hochgeladen wird.

Android

  1. Führen Sie im Dialogfeld „Build-Einstellungen“ einen der folgenden Schritte aus:

    • Exportieren Sie es in ein Android Studio-Projekt, um Ihr Projekt zu erstellen. oder

    • Erstellen Sie Ihr APK direkt aus dem Unity-Editor.
      Stellen Sie vor dem Erstellen sicher, dass das Kontrollkästchen für „Symbole erstellen.zip“ im Dialogfeld „Erstellungseinstellungen“ aktiviert ist.

  2. Sobald Ihr Build abgeschlossen ist, generieren Sie eine Crashlytics-kompatible Symboldatei und laden Sie sie auf Firebase-Server hoch, indem Sie den folgenden Firebase-CLI-Befehl ausführen:

    firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
    • FIREBASE_APP_ID : Ihre Firebase-Android-App-ID (nicht Ihr Paketname)
      Beispiel-ID einer Firebase-Android-App: 1:567383003300:android:17104a2ced0c9b9b

    • PATH/TO/SYMBOLS : Der Pfad zur von der CLI generierten Symboldatei

      • In ein Android Studio-Projekt exportiert – PATH/TO/SYMBOLS ist das Verzeichnis unityLibrary/symbols , das im Stammverzeichnis des exportierten Projekts erstellt wird, nachdem Sie die App über Gradle oder Android Studio erstellt haben.

      • Erstellen Sie das APK direkt aus Unity heraus – PATH/TO/SYMBOLS ist der Pfad der komprimierten Symboldatei, die nach Abschluss Ihres Builds im Stammverzeichnis des Projekts generiert wurde (zum Beispiel: myproject/myapp-1.0-v100.symbols.zip ).

    Sehen Sie sich erweiterte Optionen für die Verwendung des Firebase-CLI-Befehls zum Generieren und Hochladen von Symboldateien an

    Flagge Beschreibung
    --generator=csym

    Verwendet den alten cSYM-Symboldateigenerator anstelle des Standard-Breakpad-Generators

    Nicht zur Verwendung empfohlen. Wir empfehlen die Verwendung des standardmäßigen Breakpad-Symboldateigenerators.

    --generator=breakpad

    Verwendet den Breakpad-Symboldateigenerator

    Beachten Sie, dass die Standardeinstellung für die Symboldateigenerierung Breakpad ist. Verwenden Sie dieses Flag nur, wenn Sie es hinzugefügt haben symbolGenerator { csym() } in Ihrer Build-Konfiguration und Sie möchten es überschreiben, um stattdessen Breakpad zu verwenden.

    --dry-run

    Erzeugt die Symboldateien, lädt sie jedoch nicht hoch

    Dieses Flag ist nützlich, wenn Sie den Inhalt der gesendeten Dateien überprüfen möchten.

    --debug Bietet zusätzliche Debugging-Informationen

Schritt 5 : Erzwingen Sie einen Testabsturz, um die Einrichtung abzuschließen

Um die Einrichtung von Crashlytics abzuschließen und erste Daten im Crashlytics-Dashboard der Firebase-Konsole anzuzeigen, müssen Sie einen Testabsturz erzwingen.

  1. Suchen Sie ein vorhandenes GameObject und fügen Sie ihm dann das folgende Skript hinzu. Dieses Skript führt einige Sekunden nach der Ausführung Ihrer App zu einem Testabsturz.

    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. Erstellen Sie Ihre App und laden Sie Symbolinformationen hoch, nachdem die Erstellung abgeschlossen ist.

    • iOS+ : Das Firebase Unity Editor-Plugin konfiguriert Ihr Xcode-Projekt automatisch zum Hochladen Ihrer Symboldatei.

    • Android : Führen Sie für Ihre Android-Apps, die IL2CPP verwenden, den Firebase-CLI-Befehl crashlytics:symbols:upload um Ihre Symboldatei hochzuladen.

  3. Führen Sie Ihre App aus. Sobald Ihre App ausgeführt wird, beobachten Sie das Geräteprotokoll und warten Sie, bis die Ausnahme vom CrashlyticsTester ausgelöst wird.

    • iOS+ : Protokolle im unteren Bereich von Xcode anzeigen.

    • Android : Zeigen Sie Protokolle an, indem Sie den folgenden Befehl im Terminal ausführen: adb logcat .

  4. Gehen Sie zum Crashlytics-Dashboard der Firebase-Konsole, um Ihren Testabsturz zu sehen.

    Wenn Sie die Konsole aktualisiert haben und der Testabsturz nach fünf Minuten immer noch nicht auftritt, aktivieren Sie die Debug-Protokollierung , um zu sehen, ob Ihre App Absturzberichte sendet.


Und das ist es! Crashlytics überwacht Ihre App jetzt auf Abstürze. Besuchen Sie das Crashlytics-Dashboard , um alle Ihre Berichte und Statistiken anzuzeigen und zu untersuchen.

Nächste Schritte

  • (Empfohlen) Für Android-Apps, die IL2CPP verwenden, erhalten Sie Hilfe beim Debuggen von Abstürzen, die durch native Speicherfehler verursacht werden, indem Sie GWP-ASan-Berichte sammeln . Diese speicherbezogenen Fehler können mit einer Speicherbeschädigung in Ihrer App zusammenhängen, die die Hauptursache für Sicherheitslücken in der App darstellt. Um diese Debugging-Funktion nutzen zu können, stellen Sie sicher, dass Ihre App das neueste Crashlytics SDK für Unity (v10.7.0+) verwendet und GWP-ASan explizit aktiviert ist (Sie müssen Ihr Android App Manifest ändern ).
  • Integrieren Sie Google Play, sodass Sie die Absturzberichte Ihrer Android-App direkt im Crashlytics-Dashboard nach Google Play-Track filtern können. Dadurch können Sie Ihr Dashboard besser auf bestimmte Builds konzentrieren.