| Plattform auswählen : | iOS+ Android Flutter Unity |
Sie können auf ein Problem klicken und einen detaillierten Ereignisbericht im DevOps & Engagement > Crashlytics Dashboard der Firebase Console aufrufen. Sie können diese Berichte anpassen, um besser zu verstehen, was in Ihrer App passiert und welche Umstände zu Ereignissen geführt haben, die an Crashlytics gemeldet wurden.
Instrumentieren Sie Ihre App, um benutzerdefinierte Schlüssel, benutzerdefinierte Logmeldungen, und Nutzerkennungen zu protokollieren.
Melden Sie Ausnahmen an Crashlytics.
Sie erhalten automatisch Navigationspfadlogs, wenn Ihre App das Firebase SDK for Google Analytics verwendet. Diese Logs geben Ihnen Einblick in Nutzeraktionen, die zu einem Crashlytics-erfassten Ereignis in Ihrer App geführt haben.
Deaktivieren Sie die automatische Absturzmeldung und aktivieren Sie die Opt-in-Meldung für Ihre Nutzer. Standardmäßig erfasst Crashlytics automatisch Absturzberichte für alle Nutzer Ihrer App.
Benutzerdefinierte Schlüssel hinzufügen
Mit benutzerdefinierten Schlüsseln können Sie den spezifischen Status Ihrer App abrufen, der zu einem Absturz geführt hat. Sie können Ihren Absturzberichten beliebige Schlüssel/Wert-Paare zuordnen und dann mit den benutzerdefinierten Schlüsseln im DevOps & Engagement > Crashlytics Dashboard der Firebase Console nach Absturzberichten suchen und sie filtern.
Sie können nach Problemen suchen, die einem benutzerdefinierten Schlüssel entsprechen.
Wenn Sie ein bestimmtes Problem in der Console untersuchen, können Sie die zugehörigen benutzerdefinierten Schlüssel für jedes Ereignis auf dem Untertab Schlüssel aufrufen und die Ereignisse sogar nach benutzerdefinierten Schlüsseln filtern (Menü Filter oben auf der Seite).
Verwenden Sie die Instanzmethode setCustomKey, um Schlüssel/Wert-Paare festzulegen. setCustomKey ist für den Parameter value überladen, um beliebige primitive oder String-Argumente zu akzeptieren. Hier einige Beispiele:
Kotlin
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("my_string_key", "foo") // String value key("my_bool_key", true) // boolean value key("my_double_key", 1.0) // double value key("my_float_key", 1.0f) // float value key("my_int_key", 1) // int value }
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("my_string_key", "foo" /* string value */); crashlytics.setCustomKey("my_bool_key", true /* boolean value */); crashlytics.setCustomKey("my_double_key", 1.0 /* double value */); crashlytics.setCustomKey("my_float_key", 1.0f /* float value */); crashlytics.setCustomKey("my_int_key", 1 /* int value */);
Sie können auch den Wert eines vorhandenen Schlüssels ändern, indem Sie den Schlüssel aufrufen und einen anderen Wert festlegen. Beispiel:
Kotlin
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("current_level", 3) key("last_UI_action", "logged_in") }
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("current_level", 3); crashlytics.setCustomKey("last_UI_action", "logged_in");
Fügen Sie Schlüssel/Wert-Paare im Bulk hinzu, indem Sie eine Instanz von CustomKeysAndValues an die Instanzmethode setCustomKeys übergeben:
Kotlin
Für Kotlin ist die vorhandene Funktion einfacher als die Verwendung des CustomKeysAndValues-Builders.
crashlytics.setCustomKeys { key("str_key", "hello") key("bool_key", true) key("int_key", 1) key("long_key", 1L) key("float_key", 1.0f) key("double_key", 1.0) }
Java
CustomKeysAndValues keysAndValues = new CustomKeysAndValues.Builder() .putString("string key", "string value") .putString("string key 2", "string value 2") .putBoolean("boolean key", True) .putBoolean("boolean key 2", False) .putFloat("float key", 1.01) .putFloat("float key 2", 2.02) .build(); FirebaseCrashlytics.getInstance().setCustomKeys(keysAndValues);
Benutzerdefinierte Logmeldungen hinzufügen
Um mehr Kontext zu den Ereignissen zu erhalten, die zu einem Absturz geführt haben, können Sie Ihrer App benutzerdefinierte Crashlytics Logs hinzufügen. Crashlytics ordnet die Logs Ihren Absturzdaten zu und zeigt sie auf dem Tab Logs an, wenn Sie die Details eines Problems aufrufen. Alle Probleme finden Sie im Dashboard DevOps & Engagement > Crashlytics dashboard der Firebase console).
Verwenden Sie log, um Probleme zu lokalisieren. Beispiel:
Kotlin
Firebase.crashlytics.log("message")
Java
FirebaseCrashlytics.getInstance().log("message");
Nutzerkennungen festlegen
Um ein Problem zu diagnostizieren, ist es oft hilfreich zu wissen, bei welchen Nutzern ein bestimmter Absturz aufgetreten ist. Crashlytics bietet eine Möglichkeit, Nutzer in Ihren Absturzberichten anonym zu identifizieren.
Wenn Sie Ihren Berichten Nutzer-IDs hinzufügen möchten, weisen Sie jedem Nutzer eine eindeutige Kennung in Form einer ID-Nummer, eines Tokens oder eines Hashwerts zu:
Kotlin
Firebase.crashlytics.setUserId("user123456789")
Java
FirebaseCrashlytics.getInstance().setUserId("user123456789");
Wenn Sie eine Nutzerkennung nach dem Festlegen löschen müssen, setzen Sie den Wert auf einen leeren String zurück. Durch das Löschen einer Nutzerkennung werden keine vorhandenen Crashlytics Einträge entfernt. Wenn Sie Einträge löschen müssen, die mit einer Nutzer ID verknüpft sind, wenden Sie sich an den Firebase-Support.
(Nur Android NDK) Metadaten zu NDK-Absturzberichten hinzufügen
Optional können Sie den crashlytics.h Header in Ihren C++-Code einfügen, um
Metadaten zu NDK-Absturzberichten hinzuzufügen, z. B. benutzerdefinierte Schlüssel,
benutzerdefinierte Logs,
Nutzerkennungen. Alle diese Optionen werden oben auf dieser Seite beschrieben.
crashlytics.h ist als reine Header-C++-Bibliothek im
GitHub-Repository des Firebase Android SDK verfügbar.
Eine Anleitung zur Verwendung der NDK C++ APIs finden Sie in den Kommentaren in der Headerdatei.
GWP-ASan-Berichte einbeziehen, um Speicherschäden zu beheben
Crashlytics kann Ihnen helfen, Abstürze zu beheben, die durch native Speicherfehler verursacht werden, indem GWP-ASan-Berichte erfasst werden. Diese speicherbezogenen Fehler können mit Speicherschäden in Ihrer App zusammenhängen, die die Hauptursache für Sicherheitslücken in Apps sind.
Im DevOps & Engagement > Crashlytics Dashboard der Firebase Konsole können Sie mit diesen Daten Folgendes tun:
Sie können diese Daten auf einem neuen Tab „Speicher-Stacktraces“ aufrufen, wenn Sie auf die Details eines Problems klicken.
Mit dem neuen Signal „GWP-ASan-Bericht“ und dem entsprechenden Filter können Sie schnell alle Probleme mit diesen Daten aufrufen.
Sie können GWP-ASan-Speicherberichte erhalten, wenn Sie GWP-ASan explizit aktivieren in Ihrer App und das Crashlytics SDK für NDK Version 18.3.6 oder höher (Firebase BoM Version 31.3.0 oder höher) verwenden. Sie können Ihre GWP-ASan-Einrichtung mit dem Beispiel für nativen Code in der Android-Dokumentation testen.
Nicht schwerwiegende Ausnahmen melden
Crashlytics meldet nicht nur automatisch Abstürze Ihrer App, Crashlytics ermöglicht Ihnen auch, nicht schwerwiegende Ausnahmen zu erfassen und sie beim nächsten Start Ihrer App zu senden.
Verwenden Sie die Methode recordException, um nicht schwerwiegende Ausnahmen in den catch-Blöcken Ihrer App zu erfassen. Beispiel:
Kotlin
try { methodThatThrows() } catch (e: Exception) { Firebase.crashlytics.recordException(e) // handle your exception here }
Java
try { methodThatThrows(); } catch (Exception e) { FirebaseCrashlytics.getInstance().recordException(e); // handle your exception here }
Außerdem können Sie der jeweiligen nicht schwerwiegenden Ausnahme benutzerdefinierte Schlüssel zuordnen. Beispiel:
Kotlin
try { methodThatThrows() } catch (e: Exception) { Firebase.crashlytics.recordException(e) { key("string key", "string value") key("boolean key", true) key("float key", Float.MAX_VALUE) } // handle your exception here }
Java
try { methodThatThrows(); } catch (Exception e) { CustomKeysAndValues keysAndValues = new CustomKeysAndValues.Builder() .putString("string key", "string value") .putBoolean("boolean key", true) .putFloat("float key", Float.MAX_VALUE) .build(); FirebaseCrashlytics.getInstance().recordException(e, keysAndValues); // handle your exception here }
Alle erfassten Ausnahmen werden im DevOps & Engagement > Crashlytics Dashboard der Firebase Console als nicht schwerwiegende Probleme angezeigt. Die Problemzusammenfassung enthält alle Statusinformationen, die Sie normalerweise von Abstürzen erhalten, sowie Aufschlüsselungen nach Android-Version und Hardwaregerät.
Crashlytics verarbeitet Ausnahmen in einem separaten Hintergrundthread, um die Auswirkungen auf die Leistung Ihrer App zu minimieren. Um den Netzwerkverkehr Ihrer Nutzer zu reduzieren, werden protokollierte Ausnahmen in Crashlytics zusammengefasst und beim nächsten Start der App gesendet.
Navigationspfadlogs abrufen
Navigationspfadlogs geben Ihnen einen besseren Einblick in die Interaktionen eines Nutzers mit Ihrer App, die zu einem Absturz, einem nicht schwerwiegenden Ereignis oder einem ANR-Ereignis geführt haben. Diese Logs können hilfreich sein, wenn Sie ein Problem reproduzieren und beheben möchten.
Navigationspfadlogs werden von Google Analytics unterstützt. Um sie zu erhalten, müssen Sie Google Analytics für Ihr Firebase-Projekt aktivieren und das Firebase SDK for Google Analytics zu Ihrer App hinzufügen. Sobald diese Voraussetzungen erfüllt sind, werden Navigationspfadlogs automatisch in die Daten eines Ereignisses auf dem Tab **Logs** aufgenommen, wenn Sie die Details eines Problems aufrufen. Alle Probleme finden Sie im Dashboard **DevOps & Engagement** > **Crashlytics** der Firebase Console.Google AnalyticsCrashlyticsFirebase
Das Analytics SDK
protokolliert automatisch das Ereignis screen_view,
sodass in den Navigationspfadlogs eine Liste der Bildschirme angezeigt wird, die vor dem
Absturz, dem nicht schwerwiegenden Ereignis oder dem ANR-Ereignis aufgerufen wurden. Ein screen_view-Navigationspfadlog enthält einen firebase_screen_class-Parameter.
Navigationspfadlogs werden auch mit allen benutzerdefinierten Ereignissen gefüllt, die Sie manuell in der Sitzung des Nutzers protokollieren, einschließlich der Parameterdaten des Ereignisses. Anhand dieser Daten lässt sich eine Reihe von Nutzeraktionen darstellen, die zu einem Absturz, einem nicht schwerwiegenden Ereignis oder einem ANR-Ereignis geführt haben.
Sie können die Erhebung und Verwendung von Google Analytics Daten steuern, einschließlich der Daten, die in Navigationspfadlogs verwendet werden.
Opt-in-Meldung aktivieren
Standardmäßig erfasst Crashlytics automatisch Absturzberichte für alle Nutzer Ihrer App. Wenn Sie Nutzern mehr Kontrolle über die von ihnen gesendeten Daten geben möchten, können Sie die Opt-in-Meldung aktivieren, indem Sie die automatische Meldung deaktivieren und Daten nur dann an Crashlytics senden, wenn Sie dies in Ihrem Code festlegen.
Fügen Sie im Block
applicationIhrer DateiAndroidManifest.xmleinmeta-data-Tag hinzu, um die automatische Erhebung zu deaktivieren:<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />Aktivieren Sie die Erhebung für ausgewählte Nutzer, indem Sie die Crashlytics Daten erhebungsüberschreibung zur Laufzeit aufrufen. Der Überschreibungswert bleibt bei allen nachfolgenden Starts Ihrer App bestehen, sodass Crashlytics automatisch Berichte für diesen Nutzer erheben kann.
Kotlin
Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)
Java
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
Wenn der Nutzer die Datenerhebung später deaktiviert, können Sie
falseals Überschreibungswert übergeben. Dieser Wert wird beim nächsten Start der App angewendet und bleibt bei allen nachfolgenden Starts für diesen Nutzer bestehen.
Daten von Absturzinformationen verwalten
Crash Insights hilft Ihnen, Probleme zu beheben, indem Ihre anonymisierten Stacktraces mit Traces aus anderen Firebase-Apps verglichen werden. So erfahren Sie, ob Ihr Problem Teil eines größeren Trends ist. Für viele Probleme bietet Crash Insights sogar Ressourcen, die Ihnen bei der Fehlerbehebung helfen.
Crash Insights verwendet aggregierte Absturzdaten, um häufige Stabilitätstrends zu ermitteln. Wenn Sie die Daten Ihrer App nicht freigeben möchten, können Sie Crash Insights im Menü Absturzinformationen oben in der Problemliste im DevOps & Engagement > Crashlytics Dashboard der Firebase Console deaktivieren.
Nächste Schritte
- 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.