Im Crashlytics-Dashboard können Sie auf ein Problem klicken, um einen detaillierten Ereignisbericht zu erhalten. Sie können diese Berichte anpassen, um besser nachvollziehen zu können, was in Ihrer App passiert und unter welchen Umständen Ereignisse an Crashlytics gemeldet werden.
Erfasste Ausnahmen und nicht erfasste Ausnahmen an Crashlytics melden.
GWP-ASan-Berichte zur Fehlerbehebung bei Speicherschäden einbeziehen
Instrumentieren Sie Ihre App, um benutzerdefinierte Schlüssel, benutzerdefinierte Log-Nachrichten und Nutzer-IDs zu protokollieren.
Wenn Ihre App das Firebase SDK für Google Analytics verwendet, erhalten Sie automatisch Breadcrumb-Logs. Diese Logs geben Ihnen Einblick in Nutzeraktionen, die zu einem in Ihrer App erfassten Crashlytics-Ereignis führen.
Deaktivieren Sie die automatische Absturzmeldung und aktivieren Sie die Opt-in-Berichterstellung für Ihre Nutzer. Standardmäßig werden in Crashlytics automatisch Absturzberichte für alle Nutzer Ihrer App erfasst.
Ausnahmen melden
Erkannte Ausnahmen melden
Wenn Sie erwartete Ausnahmen haben, können Sie das Crashlytics SDK sie als nicht schwerwiegende Ereignisse melden lassen. Diese Ereignisse werden auf dem Gerät protokolliert und dann zusammen mit dem nächsten Bericht über schwerwiegende Fehler oder beim Neustart des Spiels durch den Endnutzer gesendet.
In C# können Sie Ausnahmen mit der folgenden Methode protokollieren:
Crashlytics.LogException(Exception ex);
Erwartete Ausnahmen können Sie 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
Bei nicht abgefangenen Ausnahmen, die nicht zum Absturz Ihres Spiels führen (z. B. nicht abgefangene C#-Ausnahmen in der Spiellogik), können Sie das Crashlytics SDK so konfigurieren, dass sie als schwerwiegende Ereignisse gemeldet werden. Dazu müssen Sie die Property Crashlytics.ReportUncaughtExceptionsAsFatal
auf true
setzen, wenn Sie Crashlytics in Ihrem Unity-Projekt initialisieren.
Diese Ereignisse werden in Echtzeit an Crashlytics gemeldet, ohne dass der Endnutzer das Spiel neu starten muss.
Wenn Sie diese nicht erfassten Ausnahmen als schwerwiegende Ereignisse melden, werden sie bei den 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 Fehlerbehebung bei Speicherschäden einbeziehen
Bei Android-Apps, die IL2CPP verwenden, kann Crashlytics Ihnen helfen, Abstürze zu debuggen, die durch native Arbeitsspeicherfehler 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.
Sie können diese Daten auf dem neuen Tab „Speicher-Stacktraces“ ansehen, wenn Sie im Crashlytics-Dashboard auf die Details eines Problems klicken.
Sie können auch das neue Signal und den neuen Filter „GWP-ASan-Bericht“ verwenden, um schnell alle Probleme mit diesen Daten aufzurufen.
Sie können GWP-ASan-Speicherberichte erhalten, wenn Ihre App das aktuelle 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 verwenden, um in der Firebase-Konsole nach Absturzberichten zu suchen und sie zu filtern.
- Im Crashlytics-Dashboard können Sie nach Problemen suchen, die einem benutzerdefinierten Schlüssel entsprechen.
- Wenn Sie ein bestimmtes Problem in der Konsole untersuchen, können Sie die zugehörigen benutzerdefinierten Schlüssel für jedes Ereignis auf dem Tab Schlüssel ansehen und die Ereignisse sogar nach benutzerdefinierten Schlüsseln filtern (Menü Filter oben auf der Seite).
Wenn die Funktion mehrmals aufgerufen wird, werden neue Werte für vorhandene Schlüssel aktualisiert. Bei einem Absturz wird nur der aktuelle Wert erfasst.
Crashlytics.SetCustomKey(string key, string value);
Benutzerdefinierte Logmeldungen hinzufügen
Protokollierte Nachrichten sind mit Ihren Absturzdaten verknüpft und werden im Firebase Crashlytics-Dashboard angezeigt, wenn Sie sich einen bestimmten Absturz ansehen.
Crashlytics.Log(string message);
Nutzerkennungen festlegen
Sie können eine ID-Nummer, ein Token oder einen gehashten 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 ihn auf einen leeren String setzen. Dieser Wert wird im Firebase Crashlytics-Dashboard angezeigt, wenn Sie sich einen bestimmten Absturz ansehen.
Crashlytics.SetUserId(string identifier);
Navigationspfad-Logs abrufen
Navigationspfadlogs geben Ihnen einen besseren Einblick in die Interaktionen eines Nutzers mit Ihrer App, die zu einem Absturz‑, nicht schwerwiegenden oder ANR-Ereignis geführt haben. Diese Protokolle können hilfreich sein, wenn Sie versuchen, ein Problem zu reproduzieren und zu beheben.
Breadcrumb-Logs basieren auf Google Analytics. Damit Sie sie erhalten, müssen Sie Google Analytics für Ihr Firebase-Projekt aktivieren und das Firebase SDK für Google Analytics in Ihre App einfügen. Wenn diese Voraussetzungen erfüllt sind, werden Breadcrumb-Logs automatisch in die Daten eines Ereignisses auf dem Tab Logs aufgenommen, wenn Sie die Details eines Problems aufrufen.
Im Analytics SDK wird das screen_view
-Ereignis automatisch protokolliert. Dadurch kann in den Navigationspfadlogs eine Liste der Bildschirme angezeigt werden, die vor dem Absturz‑, nicht schwerwiegenden oder ANR-Ereignis aufgerufen wurden. Ein screen_view
-Breadcrumb-Log enthält einen firebase_screen_class
-Parameter.
Breadcrumb-Logs 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 nachvollziehen, die zu einem Absturz‑, nicht schwerwiegenden oder ANR-Ereignis geführt haben.
Sie können die Erhebung und Verwendung von Google Analytics-Daten steuern, einschließlich der Daten, die in Breadcrumb-Logs enthalten sind.
Berichterstellung für die Einwilligung 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 bieten, die Berichterstellung von Abstürzen zu aktivieren.
Wenn Sie die automatische Erfassung nur für ausgewählte Nutzer deaktivieren möchten, rufen Sie die Crashlytics-Überschreibung für die Datenerfassung zur Laufzeit auf. Der Überschreibungswert bleibt bei allen nachfolgenden Starts Ihrer App bestehen, sodass Crashlytics automatisch Berichte für diesen Nutzer erfassen kann.
Crashlytics.IsCrashlyticsCollectionEnabled = true
Wenn der Nutzer die Datenerhebung später deaktiviert, können Sie false
als Überschreibungswert übergeben. Dieser wird beim nächsten Start der App durch den Nutzer angewendet und bleibt bei allen nachfolgenden Starts für diesen Nutzer bestehen.
Daten für Absturzinformationen verwalten
Mit Absturzinformationen können Sie Probleme beheben, indem Sie Ihre anonymisierten Stacktraces mit Traces aus anderen Firebase-Apps vergleichen und feststellen, ob Ihr Problem Teil eines größeren Trends ist. Bei vielen Problemen bietet Crash Insights sogar Ressourcen, die Ihnen bei der Fehlerbehebung helfen.
Crash Insights verwendet aggregierte Absturzdaten, um allgemeine Stabilitätstrends zu ermitteln. Wenn Sie die Daten Ihrer App nicht freigeben möchten, können Sie Crash Insights im Menü Crash Insights oben in der Crashlytics-Problemliste in der Firebase-Konsole deaktivieren.