Podręcznik ten opisuje, jak dostosować swoje raporty o awariach pomocą Firebase Crashlytics SDK. Domyślnie Crashlytics automatycznie zbiera raporty o awariach dla wszystkich użytkowników swojej aplikacji (można wyłączyć automatyczne zgłaszanie awarii i umożliwiają raportowanie opt-in dla użytkowników zamiast). Crashlytics zapewnia cztery mechanizmy wylogowaniu z pudełka: niestandardowych klawiszy , niestandardowe dzienniki , identyfikatory użytkowników i złowione wyjątki .
Dodaj własne klucze
Przyciski niestandardowe pomóc specyficzny stan aplikacji doprowadziły do katastrofy. Można skojarzyć dowolne pary klucz / wartość ze swoich raportów o awariach, a następnie użyj przycisków niestandardowych do wyszukiwania i raporty o awariach filtr w konsoli Firebase.
W desce rozdzielczej Crashlytics można szukać problemów pasujących klucz niestandardowy.
Kiedy Oceniasz problem szczególny w konsoli, można przeglądać powiązane niestandardowe klucze dla każdego zdarzenia ( Keys podkarty), a nawet filtrować zdarzenia według niestandardowych klawiszy (menu filtra na górze strony).
Użyj setCustomKey
metody instancji par klucz / wartość. Zauważ, że setCustomKey
jest przeciążony dla value
parametru ponosi prymitywny lub String
argument. Oto kilka przykładów:
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("my_string_key", "foo" /* string value */); crashlytics.setCustomKey("my_bool_key", true /* boolean value */); crashlytics.setCustomKey("my_double_key", 1.0 /* double value */); crashlytics.setCustomKey("my_float_key", 1.0f /* float value */); crashlytics.setCustomKey("my_int_key", 1 /* int value */);
Kotlin+KTX
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("my_string_key", "foo") // String value key("my_bool_key", true) // boolean value key("my_double_key", 1.0) // double value key("my_float_key", 1.0f) // float value key("my_int_key", 1) // int value }
Można również zmodyfikować wartości istniejącego klucza dzwoniąc pod klucz i ustawienie go na inną wartość. Na przykład:
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("current_level", 3); crashlytics.setCustomKey("last_UI_action", "logged_in");
Kotlin+KTX
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("current_level", 3) key("last_UI_action", "logged_in") }
Dodanie pary kluczy wartość / w masie przez przepuszczanie wystąpienie CustomKeysAndValues
do setCustomKeys
sposobu przykład:
Java
CustomKeysAndValues keysAndValues = new CustomKeysAndValues.Builder() .putString("string key", "string value") .putString("string key 2", "string value 2") .putBoolean("boolean key", True) .putBoolean("boolean key 2", False) .putFloat("float key", 1.01) .putFloat("float key 2", 2.02) .build(); FirebaseCrashlytics.getInstance().setCustomKeys(keysAndValues);
Kotlin+KTX
Na Kotlin, istniejąca funkcjonalność jest prostsze niż przy użyciu CustomKeysAndValues
Builder.
crashlytics.setCustomKeys { key("str_key", "hello") key("bool_key", true) key("int_key", 1) key("long_key", 1L) key("float_key", 1.0f) key("double_key", 1.0) }
Dodaj niestandardowe komunikaty dziennika
Aby dać sobie więcej kontekst wydarzeń, które doprowadziły do katastrofy, można dodawać własne dzienniki Crashlytics do swojej aplikacji. Crashlytics współpracownicy dzienniki ze swoimi danymi zderzeniowych i wyświetla je na stronie Crashlytics z konsoli Firebase w zakładce logów .
Użyj log
kwestii punktowych pomocy. Na przykład:
Java
FirebaseCrashlytics.getInstance().log("message");
Kotlin+KTX
Firebase.crashlytics.log("message")
Zestaw identyfikatorów użytkowników
Aby zdiagnozować problem, to często pomocne wiedzieć, który z użytkowników doświadczyła daną awarię. Crashlytics obejmuje drogę anonimowo identyfikacji użytkowników w swoich raportach zderzeniowych.
Aby dodać identyfikatory użytkowników do raportów, przypisać każdemu użytkownikowi unikalny identyfikator w postaci numeru identyfikacyjnego, token lub wartość hashed:
Java
FirebaseCrashlytics.getInstance().setUserId("user123456789");
Kotlin+KTX
Firebase.crashlytics.setUserId("user123456789")
Jeśli kiedykolwiek potrzeba, aby usunąć identyfikator użytkownika po jej ustawieniu wyzerować wartość na pusty ciąg. Usuwanie użytkownika, identyfikator nie usuwa istniejące rekordy Crashlytics. Jeśli chcesz usunąć rekordy powiązane z identyfikatorem użytkownika, kontaktów wsparcia Firebase .
(Tylko Android NDK) Dodaj metadane raportów o awariach NDK
Można ewentualnie zawierać crashlytics.h
nagłówka w C ++ kod, aby dodać metadane do NDK raportów o błędach, takich jak niestandardowe klucze , niestandardowych dzienników , identyfikatorów użytkowników . Wszystkie te opcje są opisane na tej stronie powyżej.
crashlytics.h
jest dostępny jako tylko nagłówek C ++ biblioteki w Firebase Android SDK GitHub repozytorium .
Przeczytaj komentarze w pliku nagłówkowym instrukcje dotyczące korzystania z API NDK C ++.
Zgłoś non-śmiertelnych wyjątki
Oprócz automatycznego zgłaszania awarii w aplikacji, Crashlytics pozwala nagrywać non-śmiertelnych wyjątki i wysyła je do Ciebie następnym razem swoich startów aplikacji.
Użyj recordException
sposób nagrywać non-śmiertelnych wyjątki w aplikacji w catch
bloków. Na przykład:
Java
try { methodThatThrows(); } catch (Exception e) { FirebaseCrashlytics.getInstance().recordException(e); // handle your exception here }
Kotlin+KTX
try { methodThatThrows() } catch (e: Exception) { Firebase.crashlytics.recordException(e) // handle your exception here }
Wszystkie nagrane wyjątki pojawiają się jako non-śmiertelnych problemów w konsoli Firebase. Podsumowanie Wydanie zawiera wszystkie informacje o stanie normalnie dostać od awarii, wraz z awariami przez wersję Androida i urządzeniem.
Crashlytics przetwarza wyjątki na dedykowanym wątku tła, aby zminimalizować wpływ na wydajność dla aplikacji. Aby zmniejszyć ruch sieciowy swoich użytkowników, partie Crashlytics zalogowany wyjątki razem i wysyła je następnym razem, gdy uruchamia App.
Włącz opt-in raportowania
Domyślnie Crashlytics automatycznie zbiera raporty o awariach dla użytkowników wszystkich Twoich aplikacji. Aby zapewnić użytkownikom większą kontrolę nad danymi, które wysyłają, można włączyć opt-in raportowania poprzez wyłączenie automatycznego raportowania i tylko wysyła dane do Crashlytics jeśli zdecydujesz się w kodzie:
W
application
pakietu swojejAndroidManifest.xml
pliku dodajmeta-data
znacznik, aby wyłączyć automatyczne kolekcji:<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
Włącz kolekcję dla wybranych użytkowników poprzez wywołanie zbierania danych nadpisanie Crashlytics przy starcie. Te wartości override powtarzał całej startów w swojej aplikacji tak Crashlytics może automatycznie gromadzić raporty. Aby zrezygnować z automatycznego zgłaszania awarii, przekaż
false
jako wartość override. Gdy ustawiony nafalse
, nowa wartość nie stosuje się aż do następnego uruchomienia aplikacji.Java
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
Kotlin+KTX
Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)
Zarządzanie danymi zderzeniowe Insights
Zderzeniowe Insights pomaga rozwiązać problemy poprzez porównanie anonimowych ślady stosu na ślady innych aplikacjach Firebase i powiadomieniem, jeśli problem jest częścią większego trendu. Dla wielu kwestiach, crash Insights nawet zapewnia zasoby mające na celu debugowania awarię.
Zderzeniowe Insights używa zagregowanych danych o awariach do określenia wspólnych trendów stabilności. Gdyby wolisz nie udostępniać dane aplikacji, można zrezygnować z katastrofy Insights z menu zderzeniowe Insights na górze listy emisyjnej Crashlytics w konsoli Firebase .