Firebase Crashlytics-Absturzberichte anpassen


Im Dashboard Crashlytics können Sie auf ein Problem klicken, um einen detaillierten Ereignisbericht aufzurufen. 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.

  • Sie erhalten automatisch Brotkrummenprotokolle, wenn in Ihrer App das Firebase SDK für Google Analytics verwendet wird. Diese Logs geben Aufschluss über Nutzeraktionen, die zu einem von Crashlytics erfassten Ereignis in Ihrer App geführt haben.

  • Deaktivieren Sie die automatische Absturzberichterstattung und aktivieren Sie die Meldefunktion für Ihre Nutzer. Standardmäßig erfasst Crashlytics automatisch Absturzberichte für alle Nutzer Ihrer App.

Ausnahmen melden

Erkannte 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 beim Neustart des Spiels 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 erfasste Ausnahmen melden

Wenn nicht erfasste Ausnahmen nicht zum Absturz Ihres Spiels führen (z. B. nicht erfasste C#-Ausnahmen in der Spiellogik), können Sie sie über das Crashlytics SDK als schwerwiegende Ereignisse melden. Legen Sie dazu die Property Crashlytics.ReportUncaughtExceptionsAsFatal auf true fest, wenn 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 einschließen, um Speicherschäden zu beheben

Bei Android-Apps, die IL2CPP verwenden, kann Crashlytics Ihnen beim Beheben von Abstürzen helfen, die durch native Arbeitsspeicherfehler verursacht wurden. Dazu werden GWP-ASan-Berichte erfasst. 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 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 sich ein bestimmtes Problem in der Console ansehen, können Sie sich die zugehörigen benutzerdefinierten Schlüssel für jedes Ereignis ansehen (Untertab Schlüssel) 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 verwendet, um den Wert zu aktualisieren. Bei einem Absturz wird nur der aktuelle Wert erfasst.

Crashlytics.SetCustomKey(string key, string value);

Benutzerdefinierte Protokollmeldungen hinzufügen

Geloggte Nachrichten sind mit Ihren Absturzdaten verknüpft und werden im Dashboard Firebase Crashlytics angezeigt, wenn Sie sich einen bestimmten Absturz ansehen.

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 Dashboard Firebase Crashlytics angezeigt, wenn Sie sich einen bestimmten Absturz ansehen.

Crashlytics.SetUserId(string identifier);

Navigationspfad-Logs 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 Protokolle können hilfreich sein, wenn Sie versuchen, ein Problem zu reproduzieren und zu beheben.

Breadcrumb-Protokolle werden von Google Analytics unterstützt. Wenn Sie also Breadcrumb-Protokolle erhalten möchten, müssen Sie Google Analytics für Ihr Firebase-Projekt aktivieren und Ihrer App das Firebase SDK für Google Analytics hinzufügen. Sobald diese Anforderungen erfüllt sind, werden Breadcrumb-Protokolle automatisch zusammen mit den Daten eines Ereignisses auf dem Tab Protokolle angezeigt, wenn Sie sich die Details eines Problems ansehen.

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

In Breadcrumb-Protokollen werden auch alle benutzerdefinierten Ereignisse erfasst, die Sie manuell in der Sitzung des Nutzers erfassen, einschließlich der Parameterdaten des Ereignisses. Anhand dieser Daten können Sie eine Reihe von Nutzeraktionen nachvollziehen, die zu einem Absturz, einem nicht schwerwiegenden Fehler 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.

Berichte mit 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 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. Wenn Sie die automatische Absturzmeldung deaktivieren möchten, geben Sie false als Überschreibungswert an. Wenn der Wert auf false gesetzt ist, wird der neue Wert erst beim nächsten Ausführen der App angewendet.

Crashlytics.IsCrashlyticsCollectionEnabled = true

Daten zu Absturzinformationen 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 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 über das Menü Crash Insights deaktivieren.