Passen Sie Ihre Firebase Crashlytics-Absturzberichte an

Im Crashlytics-Dashboard können Sie auf ein Problem klicken und einen detaillierten Ereignisbericht erhalten. Sie können diese Berichte anpassen, um besser zu verstehen, was in Ihrer App passiert und welche Umstände im Zusammenhang mit Ereignissen auftreten, die an Crashlytics gemeldet werden.

  • Erhalten Sie automatisch Breadcrumb-Protokolle , wenn Ihre App das Firebase SDK für Google Analytics verwendet. Diese Protokolle geben Ihnen Einblick in Benutzeraktionen, die zu einem von Crashlytics erfassten Ereignis in Ihrer App führen.

  • Deaktivieren Sie die automatische Absturzberichterstattung und aktivieren Sie die Opt-in-Berichterstattung für Ihre Benutzer. Beachten Sie, dass Crashlytics standardmäßig automatisch Absturzberichte für alle Benutzer Ihrer App sammelt.

Ausnahmen melden

Abgefangene Ausnahmen melden

Wenn Ausnahmen zu erwarten sind, können Sie diese vom Crashlytics SDK als nicht schwerwiegende Ereignisse melden lassen. Diese Ereignisse werden auf dem Gerät protokolliert und dann zusammen mit dem nächsten schwerwiegenden Ereignisbericht oder wenn der Endbenutzer das Spiel neu startet, gesendet.

Sie können Ausnahmen in C# mit der folgenden Methode protokollieren:

Crashlytics.LogException(Exception ex);

Sie können erwartete Ausnahmen in den Try/Catch-Blöcken Ihres Spiels protokollieren:

try {
    myMethodThatThrows();
} catch (Exception e) {
   Crashlytics.LogException(e);
   // handle your exception here!
}

Melden Sie nicht erfasste Ausnahmen

Nicht abgefangene Ausnahmen , die Ihr Spiel nicht zum Absturz bringen (z. B. nicht abgefangene C#-Ausnahmen in der Spiellogik), können vom Crashlytics SDK als schwerwiegende Ereignisse gemeldet werden, indem Sie die Crashlytics.ReportUncaughtExceptionsAsFatal -Eigenschaft auf true setzen, wo Sie Crashlytics in Ihrem Unity-Projekt initialisieren . Diese Ereignisse werden Crashlytics in Echtzeit gemeldet, ohne dass der Endbenutzer das Spiel neu starten muss.

Wenn Sie diese nicht erfassten Ausnahmen als schwerwiegende Ereignisse melden, werden sie in Ihre absturzfreien Benutzerstatistiken und in die Geschwindigkeitswarnungen einbezogen.

Beachten Sie, dass native Abstürze immer als schwerwiegende Ereignisse gemeldet werden. Diese Ereignisse werden auf dem Gerät protokolliert und dann gesendet, wenn der Endbenutzer das Spiel neu startet.

void Start() {
    // Since there is no try-block surrounding this call, if an exception is thrown,
    // it is considered unexpected.
    // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true`
    // will ensure that such cases are reported as fatals.
    thirdPartyMethodThatMayThrow();
}

Fügen Sie GWP-ASan-Berichte hinzu, um Speicherbeschädigungsprobleme zu beheben

Bei Android-Apps, die IL2CPP verwenden, kann Crashlytics Ihnen dabei helfen, durch native Speicherfehler verursachte Abstürze zu beheben, indem es GWP-ASan-Berichte sammelt. Diese speicherbezogenen Fehler können mit einer Speicherbeschädigung in Ihrer App verbunden sein, die die Hauptursache für Sicherheitslücken in der App darstellt.

  • Sie können diese Daten in einer neuen Registerkarte „Memory Stack Traces“ anzeigen, wenn Sie im Crashlytics-Dashboard auf die Details eines Problems klicken.

  • Sie können auch das neue Signal und den Filter „GWP-ASan-Bericht“ verwenden, um alle Probleme mit diesen Daten schnell anzuzeigen.

Sie können GWP-ASan-Speicherberichte erhalten, wenn Ihre App das neueste Crashlytics SDK für Unity (v10.7.0+) verwendet und GWP-ASan explizit aktiviert ist (Sie müssen Ihr Android App Manifest ändern ). Wenn Ihre App C++-Code enthält, können Sie Ihr GWP-ASan-Setup mithilfe des nativen Beispielcodes in der Android-Dokumentation testen.

Fügen Sie benutzerdefinierte Schlüssel hinzu

Mit benutzerdefinierten Schlüsseln können Sie den spezifischen Status Ihrer App ermitteln, der zu einem Absturz geführt hat. Sie können Ihren Absturzberichten beliebige Schlüssel/Wert-Paare zuordnen und dann die benutzerdefinierten Schlüssel zum Suchen und Filtern von Absturzberichten in der Firebase-Konsole verwenden.

  • Im Crashlytics-Dashboard können Sie nach Problemen suchen, die einem benutzerdefinierten Schlüssel entsprechen.
  • Wenn Sie ein bestimmtes Problem in der Konsole überprüfen, können Sie die zugehörigen benutzerdefinierten Schlüssel für jedes Ereignis anzeigen (Unterregisterkarte „Schlüssel “) und die Ereignisse sogar nach benutzerdefinierten Schlüsseln filtern (Menü „Filter“ oben auf der Seite).

Bei mehrmaligem Aufruf aktualisieren neue Werte für vorhandene Schlüssel den Wert und nur der aktuellste Wert wird erfasst, wenn ein Absturz aufgezeichnet wird.

Crashlytics.SetCustomKey(string key, string value);

Fügen Sie benutzerdefinierte Protokollnachrichten hinzu

Protokollierte Nachrichten werden mit Ihren Absturzdaten verknüpft und im Firebase Crashlytics-Dashboard angezeigt, wenn Sie einen bestimmten Absturz anzeigen.

Crashlytics.Log(string message);

Legen Sie Benutzerkennungen fest

Sie können eine ID-Nummer, einen Token oder einen Hash-Wert verwenden, um den Endbenutzer Ihrer Anwendung eindeutig zu identifizieren, ohne seine persönlichen Daten preiszugeben oder zu übermitteln. Sie können den Wert auch löschen, indem Sie ihn auf eine leere Zeichenfolge setzen. Dieser Wert wird im Firebase Crashlytics-Dashboard angezeigt, wenn ein bestimmter Absturz angezeigt wird.

Crashlytics.SetUserId(string identifier);

Holen Sie sich Breadcrumb-Protokolle

Mithilfe von Breadcrumb-Protokollen erhalten Sie ein besseres Verständnis der Interaktionen, die ein Benutzer mit Ihrer App hatte und die zu einem Absturz, einem nicht schwerwiegenden Ereignis oder einem ANR-Ereignis führten. Diese Protokolle können hilfreich sein, wenn Sie versuchen, ein Problem zu reproduzieren und zu debuggen.

Breadcrumb-Protokolle werden von Google Analytics unterstützt. Um Breadcrumb-Protokolle zu erhalten, müssen Sie Google Analytics für Ihr Firebase-Projekt aktivieren und das Firebase SDK für Google Analytics zu Ihrer App hinzufügen . Sobald diese Anforderungen erfüllt sind, werden Breadcrumb-Protokolle automatisch in die Daten eines Ereignisses auf der Registerkarte „Protokolle“ eingefügt, wenn Sie die Details eines Problems anzeigen.

Das Analytics SDK protokolliert automatisch das Ereignis screen_view , wodurch in den Breadcrumb-Protokollen eine Liste der Bildschirme angezeigt werden kann, die vor dem Absturz, dem nicht schwerwiegenden Ereignis oder dem ANR-Ereignis angezeigt wurden. Ein screen_view Breadcrumb-Protokoll enthält einen firebase_screen_class -Parameter.

Breadcrumb-Protokolle werden auch mit allen benutzerdefinierten Ereignissen gefüllt, die Sie manuell innerhalb der Benutzersitzung protokollieren, einschließlich der Parameterdaten des Ereignisses. Diese Daten können dabei helfen, eine Reihe von Benutzeraktionen aufzuzeigen, die zu einem Absturz, einem nicht schwerwiegenden oder einem ANR-Ereignis führen.

Beachten Sie, dass Sie die Erfassung und Verwendung von Google Analytics-Daten steuern können, einschließlich der Daten, die in Breadcrumb-Protokollen eingetragen werden.

Aktivieren Sie die Opt-in-Berichterstellung

Standardmäßig sammelt Crashlytics automatisch Absturzberichte für alle Benutzer Ihrer App. Sie können Benutzern mehr Kontrolle über die von ihnen gesendeten Daten geben, indem Sie ihnen die Möglichkeit geben, Abstürze zu melden.

Um die automatische Erfassung zu deaktivieren und Crashlytics nur für ausgewählte Benutzer zu initialisieren, rufen Sie zur Laufzeit die Crashlytics-Datenerfassungsüberschreibung auf. Der Überschreibungswert bleibt über alle Starts Ihrer App hinweg bestehen, sodass Crashlytics automatisch Berichte sammeln kann. Um die automatische Absturzberichterstattung zu deaktivieren, übergeben Sie false als Überschreibungswert. Bei Festlegung auf false wird der neue Wert erst bei der nächsten Ausführung der App angewendet.

Crashlytics.IsCrashlyticsCollectionEnabled = true

Verwalten Sie Crash Insights-Daten

Crash Insights hilft Ihnen bei der Lösung von Problemen, indem es Ihre anonymisierten Stack-Traces mit Traces von anderen Firebase-Apps vergleicht und Sie darüber informiert, ob Ihr Problem Teil eines größeren Trends ist. Für viele Probleme stellt Crash Insights sogar Ressourcen zur Verfügung, die Sie beim Debuggen des Absturzes unterstützen.

Crash Insights verwendet aggregierte Absturzdaten, um allgemeine Stabilitätstrends zu identifizieren. Wenn Sie die Daten Ihrer App nicht weitergeben möchten, können Sie Crash Insights über das Crash Insights- Menü oben in Ihrer Crashlytics-Problemliste in der Firebase-Konsole deaktivieren.