获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Beginnen Sie mit Firebase Crashlytics

In diesem Schnellstart 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. Fügen Sie Ihrem Unity-Projekt Firebase hinzu , falls Sie dies noch nicht getan haben. Wenn Sie kein Unity-Projekt haben, können Sie eine Beispiel-App herunterladen.

  2. Empfohlen : Um Funktionen wie absturzfreie Benutzer, Breadcrumb-Protokolle und Geschwindigkeitswarnungen zu erhalten, müssen Sie Google Analytics in Ihrem Firebase-Projekt aktivieren.

    • Wenn für Ihr vorhandenes Firebase-Projekt Google Analytics nicht aktiviert ist, können Sie Google Analytics über die Registerkarte „ Integrationen “ Ihrer > Projekteinstellungen in der Firebase-Konsole aktivieren.

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

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 das Crashlytics-Paket 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 > Import Package > Custom Package .

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

    Sie können auch jedes andere unterstützte Firebase-Produkt importieren.

  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 namens 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
    using Firebase;
    
    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;
    
                    // 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 sich für das Hochladen von Symbolen ein

Die Schritte in diesem Abschnitt sind nur für Android-Apps erforderlich, die IL2CPP verwenden.

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

  • Für Apple-Plattform-Apps sind diese Schritte nicht erforderlich, da das Firebase Unity Editor-Plug-in Ihr Xcode-Projekt automatisch so konfiguriert, dass Symbole hochgeladen werden.

Das Unity SDK 8.6.1+ von Crashlytics enthält automatisch NDK-Absturzberichte, die es Crashlytics ermöglichen, 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 Erstellungszeit mithilfe der Firebase-CLI hochladen.

Führen Sie die folgenden Schritte aus, um das Hochladen von Symbolen einzurichten:

  1. Befolgen Sie die Anweisungen zum Installieren der Firebase-CLI .

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

  2. (nur für Apps mit Android API Level 30+) Aktualisieren Sie die AndroidManifest.xml -Vorlage Ihrer App, um Pointer Tagging zu deaktivieren:

    1. Aktivieren Sie das Kontrollkästchen für Android Player Settings > Publishing Settings > Build > Custom Main Manifest .

    2. Öffnen Sie die Manifestvorlage unter Assets/Plugins/Android/AndroidManifest.xml .

    3. Fügen Sie dem Anwendungs-Tag das folgende Attribut hinzu: <application android:allowNativeHeapPointerTagging="false" ... />

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

iOS+ (Apple-Plattform)

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

  2. Erstellen Sie Ihre Anwendung.

    Für Apple-Plattformen konfiguriert das Firebase Unity Editor-Plugin Ihr Xcode-Projekt automatisch, um für jeden Build eine Crashlytics-kompatible Symboldatei zu generieren und auf Firebase-Server hochzuladen.

Android

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

    • Exportieren Sie 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.zip erstellen im Dialogfeld „Erstellungseinstellungen“ aktiviert ist.

  2. Generieren Sie nach Abschluss Ihres Builds 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-Firebase-Android-App-ID: 1:567383003300:android:17104a2ced0c9b9b

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

      • In ein Android Studio-Projekt exportiert – PATH/TO/SYMBOLS ist das unityLibrary/symbols , das im exportierten Projektstamm 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 gezippten Symboldatei, die im Stammverzeichnis des Projekts generiert wird, wenn Ihr Build abgeschlossen ist (z. B.: myproject/myapp-1.0-v100.symbols.zip ).

    Zeigen Sie 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 standardmäßigen 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 Generierung von Symboldateien Breakpad ist. 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 gesendeten Dateien überprüfen möchten.

    --debug Stellt zusätzliche Debugging-Informationen bereit

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 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 non-fatal errors 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 Ihr Build abgeschlossen ist.

    • 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 Befehl crashlytics:symbols:upload der Firebase-Befehlszeilenschnittstelle aus, 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 .

    • iOS+ : Zeigen Sie Protokolle im unteren Bereich von Xcode an.

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

  4. Wenn Sie die Ausnahme in Ihrem Geräteprotokoll sehen, starten Sie Ihre App neu, damit sie den Absturzbericht an Firebase senden kann.

  5. Rufen Sie das Crashlytics-Dashboard der Firebase-Konsole auf, um Ihren Testabsturz anzuzeigen.

    Wenn Sie die Konsole aktualisiert haben und den Testabsturz nach fünf Minuten immer noch nicht sehen, 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

  • Integrieren Sie Google Play , damit Sie die Absturzberichte Ihrer Android-App direkt im Crashlytics-Dashboard nach Google Play-Track filtern können. Auf diese Weise können Sie Ihr Dashboard besser auf bestimmte Builds konzentrieren.