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
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.
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.
Laden Sie das Firebase Unity SDK herunter und entpacken Sie das SDK an einem geeigneten Ort.
Das Firebase Unity SDK ist nicht plattformspezifisch.
Navigieren Sie in Ihrem geöffneten Unity-Projekt zu Assets > Import Package > Custom Package .
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.
Klicken Sie im Fenster Unity-Paket importieren auf Importieren .
Schritt 2 : Crashlytics initialisieren
Erstellen Sie ein neues C#-Skript und fügen Sie es dann einem
GameObject
in der Szene hinzu.Öffnen Sie Ihre erste Szene und erstellen Sie dann ein leeres
GameObject
namensCrashlyticsInitializer
.Klicken Sie im Inspektor für das neue Objekt auf Komponente hinzufügen .
Wählen Sie Ihr
CrashlyticsInit
Skript aus, um es demCrashlyticsInitializer
Objekt hinzuzufügen.
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 sich für das Hochladen von Symbolen ein
Dieser Schritt ist 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.
Um das Hochladen von Symbolen einzurichten, befolgen Sie die Anweisungen zum Installieren der Firebase-Befehlszeilenschnittstelle .
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)
Exportieren Sie Ihr Projekt aus dem Dialogfeld „Build-Einstellungen“ in einen Xcode-Arbeitsbereich.
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
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.
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
Hier sind zwei Möglichkeiten, um Ihre Firebase-App-ID zu finden:
In Ihrer Datei
google-services.json
ist Ihre App-ID der Wertmobilesdk_app_id
; oderGehen Sie in der Firebase-Konsole zu Ihren Projekteinstellungen . Scrollen Sie nach unten zur Karte Ihre Apps und klicken Sie dann auf die gewünschte Firebase-App, um ihre App-ID zu finden.
PATH/TO/SYMBOLS : Der Pfad zu der von der CLI generierten Symboldatei
In ein Android Studio-Projekt exportiert – PATH/TO/SYMBOLS ist das Verzeichnis
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.
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 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"); } } }
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.
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+ : 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
.
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
- Passen Sie die Einrichtung Ihres Absturzberichts an , indem Sie Opt-in-Berichte, Protokolle, Schlüssel und die Verfolgung nicht schwerwiegender Fehler hinzufügen.
- 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.