Firebase Crashlytics-Absturzberichte anpassen


Im Crashlytics-Dashboard können Sie auf ein Problem klicken, um eine detaillierte Ereignisbericht. Sie können diese Berichte anpassen, um besser nachvollziehen zu können, was in Ihrer App passiert und welche Umstände zu den bei Crashlytics gemeldeten Ereignissen geführt haben.

  • Rufen Sie automatisch Navigationspfade ab, wenn Ihre App die Firebase SDK für Google Analytics Diese Logs geben Ihnen Einblick in Nutzeraktionen, die zu einem von Crashlytics erfassten Ereignis in Ihrer App führen.

  • Deaktivieren Sie die automatischen Absturzberichte und Aktivieren Sie Opt-in-Berichte für Ihre Nutzer. Wenn Sie standardmäßig erfasst Crashlytics automatisch Absturzberichte für alle Ihre App-Nutzenden.

Ausnahmen melden

Erfasste Ausnahmen melden

Wenn Sie Ausnahmen haben, die erwartet werden, können Sie das Crashlytics SDK anweisen, sie als nicht schwerwiegende Ereignisse zu melden. Diese Ereignisse werden auf dem Gerät protokolliert und dann zusammen mit dem nächsten Bericht zu einem schwerwiegenden Ereignis oder wenn der Endnutzer 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!
}

Nicht abgefangene Ausnahmen melden

Für nicht abgefangene Ausnahmen, die Ihr Spiel nicht zum Absturz bringen (z. B. nicht abgefangene Ausnahmen) C#-Ausnahmen in der Spiellogik gibt, können Sie diese vom Crashlytics-SDK melden lassen. schwerwiegende Ereignisse mithilfe der Einstellung Crashlytics.ReportUncaughtExceptionsAsFatal-Property nach true, wo Sie Crashlytics in Ihrem Unity-Projekt initialisieren . Diese Ereignisse werden in Echtzeit an Crashlytics gesendet, ohne dass der Endnutzer das Spiel neu starten muss.

Wenn Sie diese nicht erfassten Ausnahmen als schwerwiegende Ereignisse melden, werden sie in Ihren Statistiken zu Nutzern ohne Abstürze und bei Geschwindigkeitswarnungen berücksichtigt.

Native Abstürze werden immer als schwerwiegende Ereignisse gemeldet. Diese Ereignisse werden auf dem Gerät protokolliert und dann gesendet, wenn der Endnutzer 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();
}

GWP-ASan-Berichte zur Behebung von Speicherschäden hinzufügen

Bei Android-Apps, die IL2CPP verwenden, kann Crashlytics dir bei der Behebung von Abstürzen helfen die durch Fehler im nativen Arbeitsspeicher verursacht werden, die durch das Erfassen von GWP-ASan-Berichten verursacht wurden. Diese speicherbezogenen Fehler können mit Speicherbeschädigungen in Ihrer App zusammenhängen, die die Hauptursache für Sicherheitslücken in Apps sind.

  • Sie können diese Daten auf dem neuen Tab „Speicher-Stack-Traces“ aufrufen, wenn Sie im Dashboard Crashlytics auf die Details eines Problems klicken.

  • Ihr könnt auch den neuen GWP-ASan-Bericht und filtern Sie sie, um schnell alle Probleme mit diesen Daten.

Sie können GWP-ASan-Speicherberichte abrufen, wenn Ihre App das neueste Crashlytics SDK für Unity (Version 10.7.0 oder höher) verwendet und GWP-ASan explizit aktiviert ist. Dazu müssen Sie das Android-App-Manifest ändern. Wenn Ihre App C++-Code enthält, können Sie die GWP-ASan-Einrichtung mit dem in der Android-Dokumentation für nativen Code.

Benutzerdefinierte Schlüssel hinzufügen

Mit benutzerdefinierten Schlüsseln können Sie den spezifischen Status Ihrer App ermitteln, der zu einem Absturz führte. Sie können Ihren Absturzberichten beliebige Schlüssel/Wert-Paare zuordnen und dann mithilfe der benutzerdefinierten Schlüssel Absturzberichte in der Firebase-Konsole suchen und filtern.

  • Im Crashlytics-Dashboard können Sie nach Problemen suchen die mit einem benutzerdefinierten Schlüssel übereinstimmen.
  • Wenn Sie ein bestimmtes Problem in der Konsole überprüfen, können Sie die zugehöriger benutzerdefinierter Schlüssel für jedes Ereignis (Unter-Tab Schlüssel) und filtern Sie sogar Ereignisse nach benutzerdefinierten Schlüsseln ändern (Menü Filter oben auf der Seite).

Wird mehrmals aufgerufen, wird der Wert mit neuen Werten für vorhandene Schlüssel aktualisiert. Bei der Aufzeichnung eines Absturzes wird nur der aktuelle Wert erfasst.

Crashlytics.SetCustomKey(string key, string value);

Benutzerdefinierte Logeinträge hinzufügen

Protokollierte Meldungen sind mit Ihren Absturzdaten verknüpft und werden in der Firebase Crashlytics-Dashboard beim Aufrufen eines bestimmten Absturzes.

Crashlytics.Log(string message);

Nutzerkennungen festlegen

Sie können eine ID-Nummer, ein Token oder einen Hash-Wert verwenden, um den Endnutzer Ihrer Anwendung eindeutig zu identifizieren, ohne seine personenbezogenen Daten offenzulegen oder zu übertragen. Sie können den Wert auch löschen, indem Sie einen leeren String festlegen. Dieser Wert wird im Firebase Crashlytics-Dashboard angezeigt, wenn einen bestimmten Absturz anzusehen.

Crashlytics.SetUserId(string identifier);

Navigationspfadlogs abrufen

Navigationspfadlogs geben Aufschluss über 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 wenn Sie versuchen, ein Problem zu reproduzieren und zu beheben.

Navigationspfade basieren auf Google Analytics. muss Google Analytics aktivieren für Ihr Firebase-Projekt und Firebase SDK für Google Analytics hinzufügen zu Ihrer App hinzufügen. Wenn diese Anforderungen erfüllt sind, werden Navigationspfadlogs automatisch die in den Daten eines Ereignisses auf dem Tab Logs enthalten sind, wenn Sie die Details aufrufen eines Problems.

Das Analytics-SDK protokolliert automatisch das screen_view-Ereignis Dadurch können in den Navigationspfadlogs eine Liste der Bildschirme angezeigt werden, die vor dem Aufruf nicht schwerwiegenden oder ANR-Ereignis. Ein screen_view-Navigationspfad-Log enthält ein firebase_screen_class-Parameter.

In Navigationspfadlogs benutzerdefinierten Ereignissen, die Sie manuell im Sitzung, einschließlich der Ereignisparameterdaten. Anhand dieser Daten können Sie eine Reihe von Nutzeraktionen nachvollziehen, 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. Dazu gehören auch die Daten, die in Breadcrumb-Logs eingefügt werden.

Opt-in-Berichte aktivieren

Standardmäßig erfasst Crashlytics automatisch Absturzberichte für alle Nutzer Ihrer App. Sie können Nutzern mehr Kontrolle über die von ihnen gesendeten Daten geben, indem Sie ihnen die Möglichkeit geben, Absturzberichte zu senden.

Wenn Sie die automatische Erhebung deaktivieren und Crashlytics nur für ausgewählte Nutzer initialisieren möchten, rufen Sie die Datenerhebungsüberschreibung für Crashlytics zur Laufzeit auf. Der Überschreibungswert bleibt bei jedem Start Ihrer App erhalten, damit Crashlytics Berichte automatisch erfassen kann. Um automatische Absturzberichte zu deaktivieren, false als Überschreibungswert. Wenn false festgelegt ist, wird der neue Wert nicht bis zur nächsten Ausführung der App angewendet werden.

Crashlytics.IsCrashlyticsCollectionEnabled = true

Crash Insights-Daten verwalten

Mit Absturzinformationen können Sie Probleme beheben, indem Sie Ihre anonymisierten Stacktraces mit Traces aus anderen Firebase-Apps vergleichen. Außerdem erfahren Sie, ob Ihr Problem Teil eines größeren Trends ist. Bei vielen Problemen bietet Crash Insights sogar um den Absturz zu beheben.

In Crash Insights werden aggregierte Absturzdaten verwendet, um häufige Stabilitätstrends zu ermitteln. Wenn du keine App-Daten teilen möchtest, kannst du Crash Insights deaktivieren über das Menü Crash Insights über der Problemliste für Crashlytics in der Firebase-Konsole.