In dieser Kurzanleitung wird beschrieben, wie Sie Firebase Crashlytics in Ihrer App mit dem Firebase Crashlytics SDK einrichten, damit Sie umfassende Absturzberichte in der Firebase-Konsole erhalten.
Für die Einrichtung von Crashlytics sind Aufgaben sowohl in der Firebase-Konsole als auch 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 Navigationspfad-Logs erhalten möchten, um Nutzeraktionen zu verstehen, die zu einem Absturz, einem nicht schwerwiegenden Ereignis oder einem ANR-Ereignis geführt haben, müssen Sie Google Analytics in Ihrem Firebase-Projekt aktivieren.
Wenn Google Analytics in Ihrem vorhandenen Firebase-Projekt nicht aktiviert ist, können Sie Google Analytics auf dem Tab Integrationen unter
in der > ProjekteinstellungenFirebase Console aktivieren. Wenn Sie ein neues Firebase-Projekt erstellen, aktivieren Sie Google Analytics während der Projekterstellung.
Schritt 1: Crashlytics SDK in Ihre App einfügen
Als Sie Ihr Unity-Projekt mit Ihrem Firebase-Projekt registriert haben, Möglicherweise wurde das Firebase Unity SDK bereits heruntergeladen und die Pakete hinzugefügt in den folgenden Schritten beschrieben.
Lade das Firebase Unity SDK herunter und entpacke 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 aus dem entpackten SDK aus, das Crashlytics SDK zu importieren (
FirebaseCrashlytics.unitypackage
).Um die Vorteile Navigationspfade Ihrer App auch das Firebase SDK für Google Analytics hinzufügen (
FirebaseAnalytics.unitypackage
). Achten Sie darauf, dass Google Analytics ist aktiviert in Ihrem Firebase-Projekt.Klicken Sie im Fenster "Import Unity Package" (Unity-Paket importieren) auf "Import" (Importieren).
Schritt 2: Crashlytics initialisieren
Erstellen Sie ein neues C#-Script und fügen Sie es dann einem
GameObject
in der Szene hinzu.Öffnen Sie die erste Szene und erstellen Sie dann eine leere
GameObject
mit dem NamenCrashlyticsInitializer
.Klicken Sie im Inspection Panel (Inspection Panel) für das neue Objekt auf Add Component (Komponente hinzufügen).
Wählen Sie das Skript
CrashlyticsInit
aus, um es dem hinzuzufügen.CrashlyticsInitializer
-Objekt.
Initialisieren Sie Crashlytics in der
Start
-Methode des Scripts: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) bereiten Sie den Upload von Symbolen vor
Dieser Schritt ist nur für Android-Apps erforderlich, die IL2CPP verwenden.
Bei Android-Apps, die das Mono-Scripting-Back-End von Unity verwenden, erforderlich.
Für Apps der Apple-Plattform sind diese Schritte nicht erforderlich, da die Firebase Unity Das Editor-Plug-in konfiguriert Ihr Xcode-Projekt automatisch für das Hochladen von Symbolen.
Das Unity SDK 8.6.1 und höher von Crashlytics enthält automatisch NDK-Absturzberichte, mit denen Crashlytics Unity-IL2CPP-Abstürze auf Android-Geräten automatisch melden kann. Symbolicierte Stacktraces für native Bibliothek finden Sie jedoch im Crashlytics-Dashboard abstürzt, müssen Sie Symbolinformationen unter mit der Firebase-Befehlszeile erstellen können.
Um das Hochladen von Symbolen vorzubereiten, befolge die Anweisungen Installieren Sie die Firebase-Befehlszeile.
Wenn Sie die Befehlszeile bereits installiert haben, müssen Sie auf die neueste Version aktualisieren.
Schritt 4: Projekt erstellen und Symbole hochladen
iOS+ (Apple-Plattform)
Exportieren Sie Ihr Projekt aus dem Dialogfeld Build Settings (Build-Einstellungen) in einen Xcode-Arbeitsbereich.
Erstellen Sie Ihre App.
Auf Apple-Plattformen wird das Firebase Unity Editor-Plug-in automatisch konfiguriert Ihr Xcode-Projekt so, dass ein Crashlytics-kompatible Symboldatei für jeden Build an die Firebase-Server.
Android
Führen Sie im Dialogfeld Build Settings (Build-Einstellungen) einen der folgenden Schritte aus:
In ein Android Studio-Projekt exportieren, um dein Projekt zu erstellen oder
Erstelle dein APK direkt über den Unity Editor.
Vergewissern Sie sich vor dem Erstellen, dass das Kontrollkästchen Create icon.zip wurde im Dialogfeld Build Settings (Build-Einstellungen) ausgewählt.
Generieren Sie nach Abschluss des Builds ein mit Crashlytics kompatibles Symbol. und laden Sie sie mit folgendem Befehl auf Firebase-Server hoch: Firebase-Befehlszeile:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID: Ihre Firebase-Android-App-ID (nicht Ihre Paketname)
Beispiel für eine Firebase-Android-App-ID:1:567383003300:android:17104a2ced0c9b9b
PATH/TO/SYMBOLS: Pfad zur Symboldatei, die von der Befehlszeile generiert wurde
In ein Android Studio-Projekt exportiert – PATH/TO/SYMBOLS ist das Verzeichnis
unityLibrary/symbols
, Dieser wird im exportierten Projektstammverzeichnis erstellt, nachdem Sie die Anwendung erstellt haben. über Gradle oder Android Studio.Das APK direkt in Unity erstellt – PATH/TO/SYMBOLS ist der Pfad der komprimierten Symboldatei. die nach Fertigstellung des Builds im Stammverzeichnis des Projekts generiert werden (Beispiel:
)myproject/myapp-1.0-v100.symbols.zip
Erweiterte Optionen für die Verwendung des Firebase-Befehlszeile zum Erstellen und Hochladen von Symboldateien
Flag Beschreibung --generator=csym
Verwendet den alten cSYM-Symboldateigenerator anstelle des standardmäßiger Breakpad-Generator
Nicht empfohlen. Wir empfehlen, den Standardgenerator für Breakpad-Symboldateien zu verwenden.
--generator=breakpad
Verwendet den Breakpad-Symboldateigenerator
Beachte, dass die Standardeinstellung für die Generierung von Symboldateien Breakpad ist. Verwenden Sie dieses Flag nur, wenn Sie
in Ihrer Build-Konfiguration haben und es überschreiben möchten, Breakpad.symbolGenerator { csym() }
--dry-run
Die Symboldateien werden generiert, aber nicht hochgeladen.
Dieses Flag ist nützlich, wenn Sie den Inhalt der gesendeten Dateien prüfen möchten.
--debug
Zusätzliche Debugging-Informationen
Schritt 5: Einrichtung eines Testabsturzes erzwingen
Um die Einrichtung von Crashlytics abzuschließen und die ersten Daten zu sehen, gehen Sie wie folgt vor: Crashlytics-Dashboard der Firebase-Konsole, Sie müssen einen Test erzwingen Abstürze.
Suchen Sie eine vorhandene
GameObject
und fügen Sie ihr das folgende Script hinzu. Dieses Script 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 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 die Symbolinformationen nach Abschluss des Builds hoch.
iOS+: Das Firebase Unity Editor-Plug-in konfiguriert Ihre Xcode-Projekt, um Ihre Symboldatei hochzuladen.
Android: Führen Sie für Ihre Android-Apps, die IL2CPP verwenden, den Befehl Firebase CLI
crashlytics:symbols:upload
aus, um die Symboldatei hochzuladen.
Führen Sie Ihre App aus. Beobachten Sie nach dem Ausführen der App das Geräteprotokoll und warten Sie Ausnahme, die vom
CrashlyticsTester
ausgelöst werden soll.iOS+: Sehen Sie sich Protokolle im unteren Bereich von Xcode an.
Android: Führen Sie den folgenden Befehl im Terminal aus, um Logs aufzurufen:
adb logcat
Rufen Sie das Crashlytics-Dashboard der Firebase-Konsole auf, um den Absturz des Tests zu sehen.
Wenn Sie die Konsole aktualisiert haben und der Test nach fünf Minuten immer noch nicht abgestürzt ist, aktivieren Sie die Debug-Protokollierung, um zu sehen, ob Ihre App Absturzberichte sendet.
Geschafft! Crashlytics prüft deine App jetzt auf Abstürze. Rufen Sie das Crashlytics-Dashboard auf, um es aufzurufen und zu untersuchen. all Ihre Berichte und Statistiken.
Nächste Schritte
- (Empfohlen) Wenn Sie Android-Apps verwenden, die IL2CPP verwenden, können Sie GWP-ASan-Berichte erfassen, um Abstürze zu beheben, die durch native Arbeitsspeicherfehler verursacht wurden. Diese speicherbezogenen Fehler können mit einer Speicherbeschädigung in Ihrer App, was die Hauptursache für Sicherheitslücken ist. Damit Sie diese Funktion zur Fehlerbehebung nutzen können, muss Ihre App das neueste Crashlytics SDK for Unity (Version 10.7.0 oder höher) verwenden und GWP-ASan explizit aktiviert haben. Dazu müssen Sie das Android-App-Manifest ändern.
- Absturzbericht einrichten indem Sie Opt-in-Berichte, Protokolle, Schlüssel und das Tracking nicht schwerwiegender Fehler hinzufügen.
- Google Play einbinden, damit Sie die Absturzberichte Ihrer Android-App direkt im Crashlytics-Dashboard nach Google Play-Track filtern können So können Sie Ihr Dashboard besser auf bestimmte Builds ausrichten.