Catch up on everything we announced at this year's Firebase Summit. Learn more

Erste Schritte 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 (wie 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. Wenn Sie nicht bereits haben, fügen Sie Firebase zu Ihrem Unity - Projekt. Wenn Sie nicht über ein Unity - Projekt haben, können Sie eine Download - Beispielanwendung .

  2. Empfohlen: Um Funktionen wie absturzfrei Benutzer zu erhalten, Paniermehl Protokolle und Geschwindigkeit Warnungen, müssen Sie Google Analytics in Ihrem Projekt Firebase ermöglichen.

    • Wenn Ihre vorhandene Firebase Projekt nicht Google Analytics aktiviert haben, können Sie Google Analytics aus der aktivieren Register Integrationen Ihrer > Projekteinstellungen in der Konsole Firebase.

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

Schritt 1: Aktivieren Crashlytics in der Konsole Firebase

  1. Gehen Sie auf die Crashlytics Armaturenbrett in der Konsole Firebase.

  2. Stellen Sie sicher , dass Ihre App aus dem Drop - Down - Auswahl neben Crashlytics am oberen Rand der Seite.

  3. Klicken Sie auf Aktivieren Crashlytics.

Schritt 2: Fügen Sie die Firebase Crashlytics SDK in Ihrer App

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 die Firebase Unity SDK , dann entpacken Sie das SDK irgendwo bequem.

    Das Firebase Unity SDK ist nicht plattformspezifisch.

  2. In Ihrem offenen Unity Projekt Navigieren zu Assets> Import Package> Benutzerdefinierte Package.

  3. Aus dem entpackten SDK, wählen Sie das Crashlytics SDK (importieren FirebaseCrashlytics.unitypackage ).

    Sie können eine beliebige andere importieren unterstützt Firebase Produkt , wie gut.

  4. Im Importfenster Unity - Paket, klicken Sie auf Importieren.

Schritt 3: Initialisieren Crashlytics

  1. Erstellen Sie einen neuen C # Skript, dann fügen Sie es zu einem GameObject in der Szene.

    1. Öffnen Sie Ihre erste Szene, dann erstellen Sie eine leere GameObject namens CrashlyticsInitializer .

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

    3. Wählen Sie Ihren CrashlyticsInit Skript es das hinzuzufügen CrashlyticsInitializer Objekt.

  2. Initialisieren Crashlytics im Skript Start Methode:

    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 4: (nur Android) Holen Sie sich für Symbol - Upload einrichten

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

  • Für Android-Apps, die das Mono-Scripting-Back-End 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 zum Hochladen von Symbolen konfiguriert.

Crashlytics Unity SDK 8.6.1+ schließt automatisch NDK Absturzberichte, die Crashlytics automatisch ermöglicht Unity zu berichten IL2CPP stürzt auf Android. Um jedoch symbolisierte Stack-Traces für systemeigene Bibliotheksabstürze im Crashlytics-Dashboard anzuzeigen, müssen Sie Symbolinformationen zur Build-Zeit mit der Firebase-CLI hochladen.

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

  1. Folgen Sie den Anweisungen , um die Firebase CLI zu installieren .

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

  2. (nur für Anwendungen Android API - Ebene mit 30+) Aktualisieren Sie Ihre App AndroidManifest.xml Vorlage zu deaktivieren Pointer Tagging:

    1. Überprüfen Sie die Box für Android - Player Einstellungen> Publishing Einstellungen> Erstellen> Benutzerdefinierte Haupt Manifest.

    2. Öffnen Sie die Manifestvorlage befindet sich auf Assets/Plugins/Android/AndroidManifest.xml .

    3. Fügen Sie das folgende Attribut auf die Anwendung tag: <application android:allowNativeHeapPointerTagging="false" ... />

Schritt 5: Erstellen Sie das Projekt und Upload - Symbole

iOS + (Apple - Plattform)

  1. Aus dem Dialog Build - Einstellungen exportieren Ihr Projekt zu einem Xcode - Arbeitsbereich.

  2. Erstellen Sie Ihre App.

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

Android

  1. Aus dem Build - Einstellungen - Dialog, wählen Sie eine der folgenden Möglichkeiten :

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

    • Erstellen Sie Ihr APK direkt aus dem Unity-Editor.
      Vor dem Gebäude, stellen Sie sicher , dass das Kontrollkästchen für erstellen symbols.zip im Dialog Einstellungen des Aufbaus geprüft wird.

  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 Paket Name)
      Beispiel Firebase Android App - ID: 1:567383003300:android:17104a2ced0c9b9b

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

      • Exportierte nach einem Android - Studio - Projekt - PATH/TO/SYMBOLS ist die unityLibrary/symbols Verzeichnis, das in dem exportierten Projektstamm erstellt wird , nachdem Sie die App über Gradle oder Android Studio bauen.

      • Errichtet direkt die APK aus Unity - PATH/TO/SYMBOLS ist der Pfad der ZIP - Symboldatei im Projektstammverzeichnis generiert , wenn Ihr Build abgeschlossen (zum Beispiel: myproject/myapp-1.0-v100.symbols.zip ).

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

    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 nur dieses Flag , wenn Sie hinzugefügt haben symbolGenerator { csym() } in der Build - Konfiguration und Sie wollen es außer Kraft zu setzen Breakpad stattdessen zu verwenden.

    --dry-run

    Erzeugt 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 Bietet zusätzliche Debugging-Informationen

Schritt 6: Kraft ein Test Crash Setup zu beenden

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

  1. Finden Sie eine vorhandene GameObject , dann fügen Sie das folgende Skript. Dieses Skript führt einige Sekunden nach dem Ausführen 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 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 +: Die Firebase Unity Editor - Plugin automatisch konfiguriert Ihr Xcode - Projekt Ihre Symboldatei hochladen.

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

  3. Führen Sie Ihre App aus. Sobald Ihre App ausgeführt wird , sehen Sie das Gerät Protokoll und wartet auf die Ausnahme - Trigger aus dem CrashlyticsTester .

    • iOS +: Log - Dateien anzeigen im unteren Bereich von Xcode.

    • Android: Log - Dateien anzeigen , indem Sie den folgenden Befehl im Terminal ausgeführt wird : adb logcat .

  4. Wenn Sie die Ausnahme in Ihrem Geräteprotokoll sehen, starten Sie Ihre App neu, damit der Absturzbericht an Firebase gesendet werden kann.

  5. Gehen Sie auf die Crashlytics Armaturenbrett der Firebase Konsole Ihren Test Absturz zu sehen.

    Wenn Sie die Konsole aktualisiert haben und Sie immer noch nicht den Test Crash nach fünf Minuten zu sehen, aktivieren Sie die Debug - Protokollierung zu sehen , ob Ihre App Berichte Absturz zu senden.


Und das ist es! Crashlytics überwacht jetzt Ihre App auf Abstürze. Besuchen Sie den Crashlytics Armaturenbrett Blick und untersuchen alle Ihre Berichte und Statistiken.

Nächste Schritte

  • Passen Sie Ihre Crash - Bericht Setup durch Hinzufügen von Opt-in - Reporting, Protokolle, Schlüssel und Verfolgung von nicht-tödlichen Fehler.