| 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
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.
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.
Laden Sie das Firebase Unity SDK herunter und entpacken Sie es an einem geeigneten Ort. Das Firebase Unity SDK ist nicht plattformspezifisch.
Rufen Sie in Ihrem geöffneten Unity-Projekt Assets > Import Package > Custom Package auf.
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.Klicken Sie im Fenster Import Unity Package auf Import.
Schritt 2: Crashlytics initialisieren
Erstellen Sie ein neues C#-Skript und fügen Sie es einem
GameObjectin der Szene hinzu.Öffnen Sie Ihre erste Szene und erstellen Sie ein leeres
GameObjectmit dem NamenCrashlyticsInitializer.Klicken Sie im Inspector für das neue Objekt auf Add Component.
Wählen Sie Ihr
CrashlyticsInit-Skript aus, um es demCrashlyticsInitializer-Objekt hinzuzufügen.
Initialisieren Sie Crashlytics in der
StartMethode 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)
Exportieren Sie Ihr Projekt im Dialogfeld Build Settings in einen Xcode-Arbeitsbereich.
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
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.
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:17104a2ced0c9b9bPATH/TO/SYMBOLS: Der Pfad zur von der CLI generierten Symboldatei
Exportiert in ein Android Studio-Projekt: PATH/TO/SYMBOLS ist das
unityLibrary/symbolsVerzeichnis, 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=csymVerwendet den älteren cSYM-Symboldateigenerator anstelle des Standard-Breakpad-Generators
Nicht zur Verwendung empfohlen. Wir empfehlen, den Standard-Breakpad-Symboldateigenerator zu verwenden.
--generator=breakpadVerwendet den Breakpad-Symboldateigenerator
Die Standardeinstellung für die Generierung von Symboldateien ist Breakpad. Verwenden Sie dieses Flag nur, wenn Sie
in Ihrer Build-Konfiguration hinzugefügt haben und es überschreiben möchten, um stattdessen Breakpad zu verwenden.symbolGenerator { csym() }--dry-runGeneriert die Symboldateien, lädt sie aber nicht hoch
Dieses Flag ist nützlich, wenn Sie den Inhalt der Dateien prüfen möchten.
--debugBietet 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.
Suchen Sie ein vorhandenes
GameObjectund 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"); } } }
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:uploadBefehl aus, um Ihre Symboldatei hochzuladen.
Führen Sie Ihre App aus. Beobachten Sie nach dem Start der App das Geräteprotokoll und warten Sie, bis die Ausnahme von
CrashlyticsTesterausgelö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.
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
(Empfohlen) Für Android-Apps, die IL2CPP verwenden, können Sie GWP-ASan-Berichte erheben, um Abstürze zu beheben, die durch native Arbeitsspeicherfehler verursacht werden. Diese speicherbezogenen Fehler können mit Speicherschäden in Ihrer App zusammenhängen, die die Hauptursache für Sicherheitslücken in Apps sind. Wenn Sie diese Debugging-Funktion nutzen möchten, muss Ihre App das aktuelle Crashlytics SDK für Unity (Version 10.7.0 oder höher) verwenden und GWP-ASan muss explizit aktiviert sein . Dazu müssen Sie Ihr Android-App-Manifest ändern.
Passen Sie die Einrichtung von Absturzberichten an indem Sie die Berichterstattung nach Einwilligung, Protokolle, Schlüssel und das Tracking nicht schwerwiegender Fehler hinzufügen.
Exportieren Sie Ihre Daten nach BigQuery oder Cloud Logging , um erweiterte Analysen durchzuführen und Funktionen wie das Abfragen von Daten, das Erstellen benutzerdefinierter Dashboards und das Einrichten benutzerdefinierter Benachrichtigungen zu nutzen.