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. Standardmäßig erfasst Crashlytics automatisch Absturzberichte für alle Nutzer Ihrer App.

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 dann gesendet, wenn der Endnutzer das Spiel neu startet.

So können Sie Ausnahmen in C# 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 erfasste Ausnahmen melden

Für nicht abgefangene Ausnahmen, die Ihr Spiel nicht abstürzen (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 Crashlytics in Echtzeit gemeldet, ohne dass um das Spiel neu zu starten.

Wenn Sie diese nicht abgefangenen Ausnahmen als schwerwiegende Ereignisse melden, werden sie Statistiken zu Nutzern ohne Abstürze und Geschwindigkeitswarnungen abrufen.

Native Abstürze werden immer als schwerwiegende Ereignisse gemeldet. Diese Ereignisse werden auf dem Gerät protokolliert und gesendet, wenn der Endnutzer das Gerät neu startet. Spiel.

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.

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

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 Ihre GWP-ASan-Einrichtung mit dem Beispiel für nativen Code in der Android-Dokumentation testen.

Benutzerdefinierte Schlüssel hinzufügen

Mit benutzerdefinierten Schlüsseln können Sie den spezifischen Status Ihrer App abrufen, der zu einem Absturz führte. 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.

  • 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 durch neue Werte für vorhandene Schlüssel aktualisiert. Bei der Aufzeichnung eines Absturzes wird nur der aktuelle Wert erfasst.

Crashlytics.SetCustomKey(string key, string value);

Benutzerdefinierte Protokollmeldungen 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 das Ihrer Anwendung bereitzustellen, ohne seine personenbezogenen Daten. Sie können den Wert auch löschen, indem Sie einen leeren String festlegen. Dieser Wert wird im Dashboard Firebase Crashlytics angezeigt, wenn Sie sich einen bestimmten Absturz ansehen.

Crashlytics.SetUserId(string identifier);

Navigationspfad-Logs abrufen

In Navigationspfadlogs erhalten Sie einen besseren Überblick über die Interaktionen, die zu einem Absturz, nicht schwerwiegenden oder 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 Protokolle 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 Absturz-, nicht schwerwiegenden oder ANR-Ereignisses. Ein screen_view-Navigationspfad-Log enthält einen firebase_screen_class-Parameter.

In Navigationspfadlogs benutzerdefinierten Ereignissen, die Sie manuell im Sitzung, einschließlich der Ereignisparameterdaten. Anhand dieser Daten kann eine Reihe von Nutzeraktionen, die zu einem Absturz, nicht schwerwiegenden oder 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 Ihre App-Nutzenden. Sie können Nutzern mehr Kontrolle über die gesendeten Daten geben, indem Sie dem Melden von Abstürzen zustimmen.

Um die automatische Erfassung zu deaktivieren und Crashlytics nur für ausgewählte zu initialisieren Nutzer, rufen Sie zur Laufzeit die Crashlytics-Datenerfassungsüberschreibung 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 der Wert auf false gesetzt ist, wird der neue Wert erst bei der nächsten Ausführung der App angewendet.

Crashlytics.IsCrashlyticsCollectionEnabled = true

Crash Insights-Daten verwalten

Mit Crash Insights können Sie Ihren anonymisierten Stack vergleichen und Probleme beheben zu Traces von anderen Firebase-Apps und teilen Ihnen mit, ob das Problem Teil eines größeren Trends sind. Bei vielen Problemen finden Sie in Crash Insights sogar Ressourcen, die Ihnen bei der Fehlerbehebung helfen.

In Crash Insights werden aggregierte Absturzdaten verwendet, um häufige Stabilitätstrends zu identifizieren. Wenn Sie die Daten Ihrer App nicht freigeben möchten, können Sie Crash Insights oben in der Liste der Crashlytics-Probleme in der Firebase-Konsole im Menü Crash Insights deaktivieren.