Erste Schritte mit Crashlytics für Unity

Plattform auswählen : iOS+ Android Android NDK Flutter Unity


In dieser Anleitung wird beschrieben, wie Sie mit Firebase Crashlytics in Ihrem Unity-Projekt beginnen.

Nachdem Sie das Firebase Crashlytics SDK in Ihrer App eingerichtet haben, können Sie umfassende Absturzberichte in der Firebase Konsole abrufen.

Für die Einrichtung von Crashlytics sind Aufgaben in der Firebase Console und in Ihrer IDE erforderlich, z. B. das Hinzufügen einer Firebase-Konfigurationsdatei und des Crashlytics SDK. Um die Einrichtung abzuschließen, müssen Sie einen Testabsturz erzwingen, damit Ihr erster Absturzbericht an Firebase gesendet wird.

Hinweis

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

  2. Empfohlen: Wenn Sie automatisch Navigationspfadlogs erhalten möchten, um Nutzeraktionen zu verstehen, die zu einem Absturz‑, nicht schwerwiegenden oder ANR-Ereignis geführt haben, müssen Sie Google Analytics in Ihrem Firebase-Projekt aktivieren.

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

    • Wenn Sie ein vorhandenes Firebase-Projekt verwenden, für das Google Analytics nicht aktiviert ist, können Sie es in den Einstellungen > Integrationen Seite der Firebase Konsole aktivieren.

Schritt 1: Crashlytics SDK zu Ihrer App hinzufügen

Wenn Sie Ihr Unity-Projekt in Ihrem Firebase-Projekt registriert haben, haben Sie möglicherweise bereits das Firebase Unity SDK heruntergeladen und die in den folgenden Schritten beschriebenen Pakete hinzugefügt.

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

  2. Rufen Sie in Ihrem geöffneten Unity-Projekt Assets > Import Package > Custom Package auf.

  3. Wählen Sie im entpackten SDK aus, das Crashlytics SDK (FirebaseCrashlytics.unitypackage) zu importieren.

    Wenn Sie Navigationspfadlogs nutzen möchten, fügen Sie Ihrer App außerdem das Firebase SDK für Google Analytics hinzu (FirebaseAnalytics.unitypackage). Google Analytics muss aktiviert sein in Ihrem Firebase-Projekt.

  4. Klicken Sie im Fenster Import Unity Package auf Import.

Schritt 2: Crashlytics initialisieren

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

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

    2. Klicken Sie im Inspector für das neue Objekt auf Add Component.

    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) Für das Hochladen von Symbolen einrichten

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

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

  • Für Apps auf Apple-Plattformen sind diese Schritte nicht erforderlich, da das Firebase Unity Editor-Plug-in Ihr Xcode-Projekt automatisch für das Hochladen von Symbolen konfiguriert.

Das Crashlytics SDK für Unity (Version 8.6.1 oder höher) umfasst automatisch die NDK-Absturz berichterstattung, mit der Crashlytics Unity IL2CPP Abstürze unter Android automatisch melden kann. Wenn Sie jedoch symbolisierte Stacktraces für Abstürze in nativen Bibliotheken im Crashlytics Dashboard sehen möchten, müssen Sie zur Build-Zeit Symbolinformationen mit der Firebase CLI hochladen.

Folgen Sie der Anleitung zum Installieren der Firebase CLI, um sich für das Hochladen von Symbolen einzurichten.

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

Schritt 4: Projekt erstellen und Symbole hochladen

iOS+ (Apple-Plattform)

  1. Exportieren Sie Ihr Projekt im Dialogfeld Build Settings in einen Xcode-Arbeitsbereich.

  2. Erstellen Sie Ihre App.

    Für Apple-Plattformen konfiguriert das Firebase Unity Editor-Plug-in automatisch Ihr Xcode-Projekt 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 Settings einen der folgenden Schritte aus:

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

    • Erstellen Sie Ihr APK direkt im Unity Editor.
      Achten Sie vor dem Erstellen darauf, dass im Dialogfeld Build Settings das Kästchen Create symbols.zip angeklickt ist.

  2. Nachdem der Build abgeschlossen ist, generieren Sie eine Crashlytics-kompatible Symbol datei und laden Sie sie mit dem folgenden Firebase CLI-Befehl auf Firebase-Server hoch:

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

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

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

      • APK direkt in Unity erstellt: PATH/TO/SYMBOLS ist der Pfad der gezippten Symboldatei , die nach Abschluss des Builds im Stammverzeichnis des Projekts generiert wurde (z. B.: myproject/myapp-1.0-v100.symbols.zip).

    Erweiterte Optionen für die Verwendung des Firebase CLI-Befehls zum Generieren und Hochladen von Symboldateien ansehen

    Flag Beschreibung
    --generator=csym

    Verwendet den älteren cSYM-Symboldateigenerator anstelle des Standard-Breakpad-Generators

    Nicht zur Verwendung empfohlen. Wir empfehlen, den Standard-Breakpad-Symboldateigenerator zu verwenden.

    --generator=breakpad

    Verwendet den Breakpad-Symboldateigenerator

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

    --dry-run

    Generiert die Symboldateien, lädt sie aber nicht hoch

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

    --debug Bietet zusätzliche Debugging-Informationen

Schritt 5: Testabsturz erzwingen, um die Einrichtung abzuschließen

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

  1. Suchen Sie ein vorhandenes GameObject und fügen Sie ihm das folgende Skript hinzu. Dieses Skript verursacht einige Sekunden nach dem Ausführen Ihrer App einen 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 nach Abschluss des Builds Symbolinformationen hoch.

    • iOS+: Das Firebase Unity Editor-Plug-in konfiguriert Ihr Xcode-Projekt automatisch so, dass Ihre Symboldatei hochgeladen wird.

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

  3. Führen Sie Ihre App aus. Beobachten Sie nach dem Start der App das Geräteprotokoll und warten Sie, bis die Ausnahme von CrashlyticsTester ausgelöst wird.

    • iOS+: Protokolle werden im unteren Bereich von Xcode angezeigt.

    • Android: Führen Sie den folgenden Befehl im Terminal aus, um Protokolle anzusehen: adb logcat.

  4. Rufen Sie in der Firebase Console das DevOps & Engagement > Crashlytics dashboard auf, um nach Ihrem Testabsturz report zu suchen.

    Wenn Sie die Console aktualisiert haben und nach fünf Minuten immer noch keinen Testabsturz sehen , aktivieren Sie die Debug-Protokollierung , um zu prüfen, ob Ihre App Absturzberichte sendet.


Geschafft! Crashlytics überwacht Ihre App jetzt auf Abstürze. Besuchen Sie das Crashlytics Dashboard, um alle Berichte und Statistiken anzusehen und zu untersuchen.

Nächste Schritte