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.
Instrumentieren Sie Ihre App, um benutzerdefinierte Schlüssel, benutzerdefinierte Lognachrichten und Nutzer-IDs zu erfassen.
Melden Sie Ausnahmen an Crashlytics.
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 erhebt Crashlytics automatisch Absturzberichte für alle Nutzer Ihrer App.
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).
Verwenden Sie die Methode setCustomValue
, um Schlüssel/Wert-Paare festzulegen. Beispiel:
Swift
// Set int_key to 100. Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key") // Set str_key to "hello". Crashlytics.crashlytics().setCustomValue("hello", forKey: "str_key")
Objective-C
Wenn Sie Ganzzahlen, boolesche Werte oder Gleitkommazahlen festlegen, setzen Sie den Wert als @(value)
.
// Set int_key to 100. [[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"]; // Set str_key to "hello". [[FIRCrashlytics crashlytics] setCustomValue:@"hello" forKey:@"str_key"];
Sie können auch den Wert eines vorhandenen Schlüssels ändern, indem Sie den Schlüssel aufrufen und auf einen anderen Wert festlegen. Beispiel:
Swift
Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key") // Set int_key to 50 from 100. Crashlytics.crashlytics().setCustomValue(50, forKey: "int_key")
Objective-C
[[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"]; // Set int_key to 50 from 100. [[FIRCrashlytics crashlytics] setCustomValue:@(50) forKey:@"int_key"];
Fügen Sie im Bulk-Verfahren Schlüssel/Wert-Paare hinzu, indem Sie die Methode setCustomKeysAndValues
mit einem NSDictionary als einzigen Parameter verwenden:
Swift
let keysAndValues = [ "string key" : "string value", "string key 2" : "string value 2", "boolean key" : true, "boolean key 2" : false, "float key" : 1.01, "float key 2" : 2.02 ] as [String : Any] Crashlytics.crashlytics().setCustomKeysAndValues(keysAndValues)
Objective-C
NSDictionary *keysAndValues = @{@"string key" : @"string value", @"string key 2" : @"string value 2", @"boolean key" : @(YES), @"boolean key 2" : @(NO), @"float key" : @(1.01), @"float key 2" : @(2.02)}; [[FIRCrashlytics crashlytics] setCustomKeysAndValues: keysAndValues];
Benutzerdefinierte Protokollmeldungen hinzufügen
Wenn Sie mehr Kontext zu den Ereignissen erhalten möchten, die zu einem Absturz geführt haben, können Sie Ihrer App benutzerdefinierte Crashlytics-Protokolle hinzufügen. Crashlytics verknüpft die Protokolle mit Ihren Absturzdaten und zeigt sie auf der Crashlytics-Seite der Firebase-Konsole auf dem Tab Protokolle an.
Swift
Verwende log()
oder log(format:, arguments:)
, um Probleme zu ermitteln. Wenn Sie eine nützliche Logausgabe mit Nachrichten erhalten möchten, muss das Objekt, das Sie an log()
übergeben, dem Attribut CustomStringConvertible
entsprechen. log()
gibt die Beschreibungseigenschaft zurück, die Sie für das Objekt definieren. Beispiel:
Crashlytics.crashlytics().log("Higgs-Boson detected! Bailing out…, \(attributesDict)")
.log(format:, arguments:)
formatiert Werte, die durch den Aufruf von getVaList()
zurückgegeben werden. Beispiel:
Crashlytics.crashlytics().log(format: "%@, %@", arguments: getVaList(["Higgs-Boson detected! Bailing out…", attributesDict]))
Weitere Informationen zur Verwendung von log()
oder log(format:, arguments:)
finden Sie in der Referenzdokumentation zu Crashlytics.
Objective-C
Verwende log
oder logWithFormat
, um Probleme zu ermitteln. Wenn Sie eine nützliche Logausgabe mit Nachrichten erhalten möchten, muss das Objekt, das Sie an eine der Methoden übergeben, das Instanzattribut description
überschreiben.
Beispiel:
[[FIRCrashlytics crashlytics] log:@"Simple string message"]; [[FIRCrashlytics crashlytics] logWithFormat:@"Higgs-Boson detected! Bailing out... %@", attributesDict]; [[FIRCrashlytics crashlytics] logWithFormat:@"Logging a variable argument list %@" arguments:va_list_arg];
Weitere Informationen zur Verwendung von log
und logWithFormat
finden Sie in der Referenzdokumentation zu Crashlytics.
Nutzerkennungen festlegen
Zur Diagnose eines Problems ist es oft hilfreich zu wissen, bei welchen Nutzern ein bestimmter Absturz aufgetreten ist. Crashlytics bietet eine Möglichkeit, Nutzer in Ihren Absturzberichten anonym zu identifizieren.
Wenn Sie Ihren Berichten User-IDs hinzufügen möchten, weisen Sie jedem Nutzer eine eindeutige Kennung in Form einer ID-Nummer, eines Tokens oder eines Hashwerts zu:
Swift
Crashlytics.crashlytics().setUserID("123456789")
Objective-C
[[FIRCrashlytics crashlytics] setUserID:@"123456789"];
Wenn Sie eine Nutzer-ID nach dem Festlegen löschen müssen, setzen Sie den Wert auf einen leeren String zurück. Durch das Löschen einer Nutzer-ID werden vorhandene Crashlytics-Einträge nicht entfernt. Wenn Sie Einträge löschen möchten, die mit einer Nutzer-ID verknüpft sind, wenden Sie sich an den Firebase-Support.
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.
Navigationspfadlogs werden von Google Analytics bereitgestellt. Wenn Sie also Navigationspfadlogs 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. Wenn diese Anforderungen erfüllt sind, werden Navigationspfadlogs automatisch in die Daten eines Ereignisses auf dem Tab Logs eingefügt, 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 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 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.
Berichte mit Einwilligung aktivieren
Standardmäßig erfasst Crashlytics automatisch Absturzberichte für alle Nutzer Ihrer App. Um Nutzern mehr Kontrolle über die von ihnen gesendeten Daten zu geben, können Sie die Funktion „Opt-in-Berichte“ aktivieren. Dazu deaktivieren Sie die automatische Berichterstellung und senden Daten nur dann an Crashlytics, wenn Sie dies in Ihrem Code angeben:
Deaktivieren Sie die automatische Erfassung, indem Sie der Datei
Info.plist
einen neuen Schlüssel hinzufügen:- Schlüssel:
FirebaseCrashlyticsCollectionEnabled
- Wert:
false
- Schlüssel:
Aktivieren Sie die Erhebung für ausgewählte Nutzer, indem Sie die Crashlytics-Datenerfassungsüberschreibung zur Laufzeit aufrufen. 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 dieser Wert auffalse
festgelegt ist, wird der neue Wert erst bei der nächsten Ausführung der App angewendet.Swift
Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(true)
Objective-C
[[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:YES];
Daten zu Absturzinformationen verwalten
Crash Insights hilft Ihnen beim Beheben von Problemen, indem Ihre anonymisierten Stacktraces mit Traces aus anderen Firebase-Apps verglichen werden. So 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.