Na pulpicie Crashlytics możesz kliknąć problem, aby uzyskać szczegółowy raport o wydarzeniu. Możesz dostosować te raporty, aby lepiej zrozumieć, co dzieje się w Twojej aplikacji i w jakich okolicznościach Crashlytics
Zautomatyzuj swoją aplikację, aby rejestrować klucze niestandardowe, niestandardowe komunikaty logowania i identyfikatory użytkowników.
Wyjątki zgłaszaj do Crashlytics.
Automatycznie pobieraj logi menu nawigacyjnego, jeśli aplikacja używa Pakiet SDK Firebase dla platformy Google Analytics. Logi te dają Ci wgląd w działań użytkownika, które doprowadziły do zdarzenia zebranego przez Crashlytics w Twojej aplikacji.
Wyłącz automatyczne raportowanie awarii i włącz raportowanie z wyrażeniem zgody dla użytkowników. Pamiętaj, że domyślnie Crashlytics automatycznie zbiera raporty o awariach dla wszystkich użytkowników aplikacji.
Dodawanie kluczy niestandardowych
Klucze niestandardowe pomagają uzyskać konkretny stan aplikacji, który doprowadził do awarii. Możesz powiązać z raportami o awariach dowolne pary klucz-wartość, a następnie używać niestandardowych kluczy do wyszukiwania i filtrowania raportów o awariach w konsoli Firebase.
- W panelu Crashlytics możesz wyszukiwać problemy pasujące do klucza niestandardowego.
- Podczas sprawdzania konkretnego problemu w konsoli możesz wyświetlić powiązane klucze niestandardowe dla każdego zdarzenia (podkarta Klucze), a nawet filtrować dane zdarzeń według kluczy niestandardowych (menu Filtr u góry strony).
Aby ustawić pary klucz-wartość, użyj metody setCustomValue
. Przykład:
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
Podczas ustawiania liczb całkowitych, wartości logicznych lub liczb zmiennoprzecinkowych wpisz wartość w polu @(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"];
Możesz też zmodyfikować wartość istniejącego klucza, wywołując go i ustawiając inną wartość. Przykład:
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"];
Dodawaj pary klucz-wartość zbiorczo, używając metody setCustomKeysAndValues
z jedynym parametrem NSDictionary:
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];
Dodaj niestandardowe komunikaty logu
Aby uzyskać więcej informacji na temat zdarzeń prowadzących do awarii, możesz dodać niestandardowe logi Crashlytics do Twojej aplikacji. Crashlytics wiąże logi z danymi o awariach i wyświetla je na stronie Crashlytics Konsola Firebase na karcie Logi.
Swift
Aby określić problemy, użyj typów log()
lub log(format:, arguments:)
. Jeśli
by uzyskać przydatne dane wyjściowe dziennika z komunikatami, obiektem, do którego
log()
musi spełniać wymagania:
CustomStringConvertible
.
usłudze. Funkcja log()
zwraca właściwość opisu zdefiniowaną przez Ciebie dla argumentu
obiektu. Przykład:
Crashlytics.crashlytics().log("Higgs-Boson detected! Bailing out…, \(attributesDict)")
.log(format:, arguments:)
formatuje wartości zwracane przez wywołanie getVaList()
. Przykład:
Crashlytics.crashlytics().log(format: "%@, %@", arguments: getVaList(["Higgs-Boson detected! Bailing out…", attributesDict]))
Aby dowiedzieć się więcej o tym, jak korzystać z aplikacji log()
lub log(format:, arguments:)
,
zapoznaj się z dokumentem Crashlytics
dokumentację referencyjną.
Objective-C
Aby wskazać problemy, użyj log
lub logWithFormat
. Pamiętaj, że jeśli
uzyskać przydatne dane wyjściowe dziennika z komunikatami – obiektem, który przekazujesz
do dowolnej z tych metod musi zastąpić właściwość instancji description
.
Przykład:
[[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];
Więcej informacji o tym, jak korzystać z log
i logWithFormat
, znajdziesz w
Crashlytics dokumentację referencyjną.
Ustawianie identyfikatorów użytkowników
Aby zdiagnozować problem, często warto wiedzieć, którzy użytkownicy doświadczyli danego błędu. Crashlytics umożliwia anonimowe identyfikowanie użytkowników raporty o awariach.
Aby dodać identyfikatory użytkowników do raportów, przypisz każdemu użytkownikowi unikalny identyfikator w numeru identyfikacyjnego, tokena lub zahaszowanej wartości:
Swift
Crashlytics.crashlytics().setUserID("123456789")
Objective-C
[[FIRCrashlytics crashlytics] setUserID:@"123456789"];
Jeśli po ustawieniu identyfikatora użytkownika trzeba będzie go usunąć, zresetuj wartość do pustym ciągiem znaków. Wyczyszczenie identyfikatora użytkownika nie spowoduje usunięcia istniejącego Rekordy: Crashlytics. Jeśli chcesz usunąć rekordy powiązane z identyfikatorem użytkownika, skontaktuj się z zespołem pomocy Firebase.
Pobierz logi menu nawigacyjnego
Logi menu nawigacyjnego pozwalają lepiej poznać interakcje użytkownika do których doprowadziło do awarii, wystąpienia błędu niekrytycznego lub błędu ANR. Te logi mogą być przydatne podczas próby odtworzenia i debugowania problemu.
Logi ścieżki są obsługiwane przez Google Analytics, więc aby je uzyskać, musisz włączyć Google Analytics w projekcie Firebase i dodać do aplikacji pakiet SDK Firebase dla Google Analytics. Gdy spełnisz te wymagania, ścieżki będą automatycznie uwzględniane w danych zdarzenia na karcie Logi, gdy wyświetlisz szczegóły problemu.
Pakiet SDK Analytics
automatycznie rejestruje zdarzenie screen_view
który pozwala w dziennikach menu nawigacyjnego wyświetlać listę ekranów wyświetlonych przed
awarii, niekrytycznego ani błędu ANR. Log menu nawigacyjnego screen_view
zawiera element
firebase_screen_class
.
Logi ścieżek chleba pomarańczowego są też wypełniane zdarzeniami niestandardowymi, które rejestrujesz ręcznie w sesji użytkownika, w tym danymi parametrów zdarzenia. Te dane mogą pomóc w określeniu sekwencji działań użytkownika, które doprowadziły do awarii, niekrytycznego błędu lub zdarzenia ANR.
Pamiętaj, że możesz kontrolować zbieranie i wykorzystywanie danych Google Analytics, w tym danych wypełniających logi ścieżek.
Włączanie raportowania zgody
Domyślnie Crashlytics automatycznie zbiera raporty o awariach dla wszystkich użytkowników aplikacji. Aby zapewnić użytkownikom większą kontrolę nad danymi, które wysyłają, możesz włączyć raportów, na które należy się włączyć, wyłączając automatyczne raportowanie i wysyłając dane tylko do Crashlytics, jeśli w kodzie:
Wyłącz automatyczne zbieranie danych, dodając nowy klucz do pliku
Info.plist
:- Klucz:
FirebaseCrashlyticsCollectionEnabled
- Wartość:
false
- Klucz:
Włącz zbieranie danych w przypadku wybranych użytkowników, wywołując podczas działania funkcji override danych Crashlytics. Wartość zastąpienia jest zachowywana w przypadku wszystkich uruchomień aplikacji, aby Crashlytics mogła automatycznie zbierać raporty.
Aby zrezygnować z automatycznego raportowania awarii, podaj wartość
false
jako wartość zastępczą. Gdy ustawisz wartośćfalse
, nowa wartość zostanie zastosowana dopiero po ponownym uruchomieniu aplikacji.Swift
Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(true)
Objective-C
[[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:YES];
Zarządzanie danymi analizy awarii
Analiza awarii pomaga rozwiązywać problemy przez porównywanie anonimowych zrzutów stosu z zrzutami z innych aplikacji Firebase i informowanie, czy problem jest częścią większego trendu. W przypadku wielu problemów statystyki awarii udostępniają nawet zasoby, które pomogą Ci w debugowaniu awarii.
Raport Crash Insights korzysta z zagregowanych danych o wypadkach, aby identyfikować wspólne trendy dotyczące stabilności. Jeśli nie chcesz udostępniać danych aplikacji, możesz zrezygnować ze statystyk awarii w menu Statystyki awarii u góry listy Crashlytics problemów w konsoli Firebase.