W panelu Crashlytics możesz kliknąć problem i wyświetlić szczegółowe w raporcie o zdarzeniach. Możesz dostosować te raporty, aby lepiej zrozumieć, co dzieje się w Twojej aplikacji i w jakich okolicznościach Crashlytics
Dostosuj aplikację do rejestrowania kluczy niestandardowych, niestandardowe komunikaty dziennika i identyfikatory użytkowników.
Zgłaszaj wyjątki 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 dotyczące wszystkich użytkowników aplikacji.
Dodaj klucze niestandardowe
Klucze niestandardowe pomagają uzyskać konkretny stan aplikacji, który doprowadził do awarii. Dowolne pary klucz/wartość możesz powiązać z raportami o awariach, a następnie użyć funkcji klucze niestandardowe 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) i nawet je filtrować według kluczy niestandardowych (menu Filtr u góry strony).
Do ustawiania par klucz-wartość użyj metody instancji setCustomKey
. Pamiętaj, że funkcja setCustomKey
jest przeciążona w przypadku parametru value
, aby mogła przyjmować dowolny argument typu prymitywnego lub String
. Oto przykłady:
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 }
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 */);
Możesz też zmodyfikować wartość istniejącego klucza, wywołując go i ustawiając inną wartość. Przykład:
Kotlin+KTX
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("current_level", 3) key("last_UI_action", "logged_in") }
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("current_level", 3); crashlytics.setCustomKey("last_UI_action", "logged_in");
Dodaj zbiorczo pary klucz-wartość, przekazując wystąpienie CustomKeysAndValues
do
metodę instancji setCustomKeys
:
Kotlin+KTX
W przypadku Kotlina dotychczasowa funkcja jest prostsza niż użycie narzędzia CustomKeysAndValues
.
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) }
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);
Dodaj niestandardowe komunikaty logu
Aby uzyskać więcej informacji o zdarzeniach prowadzących do awarii, możesz dodać do aplikacji niestandardowe dzienniki Crashlytics. Crashlytics łączy dzienniki z danymi o awarii i wyświetla je na stronie Crashlytics w konsoli Firebase na karcie Dzienniki.
Aby określić problemy, użyj log
. Przykład:
Kotlin+KTX
Firebase.crashlytics.log("message")
Java
FirebaseCrashlytics.getInstance().log("message");
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 w raportach o awariach.
Aby dodawać identyfikatory użytkowników do raportów, przypisz do każdego z nich unikalny identyfikator w postaci numeru identyfikacyjnego, tokena lub wartości zaszyfrowanej:
Kotlin+KTX
Firebase.crashlytics.setUserId("user123456789")
Java
FirebaseCrashlytics.getInstance().setUserId("user123456789");
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 powoduje usunięcia istniejących rekordów Crashlytics. Jeśli chcesz usunąć rekordy powiązane z identyfikatorem użytkownika, skontaktuj się z zespołem pomocy Firebase.
(dotyczy tylko NDK na Androida) Dodawanie metadanych do raportów o awariach w NDK
Opcjonalnie możesz dodać nagłówek crashlytics.h
w kodzie C++, aby dodać metadane do raportów o awariach NDK, takie jak klucze niestandardowe, logi niestandardowe czy identyfikatory użytkownika. Wszystkie te opcje są opisane na tej stronie powyżej.
crashlytics.h
jest dostępna jako biblioteka C++ tylko z nagłówkiem
Repozytorium GitHub pakietu SDK Firebase na Androida.
Przeczytaj komentarze w pliku nagłówkowym, aby dowiedzieć się, jak używać interfejsów API NDK w C++.
Dołącz raporty GWP-ASan, aby debugować problemy z uszkodzoną pamięcią
Crashlytics może pomóc w debugowaniu awarii spowodowanych błędami pamięci natywnej przez zbieranie raportów GWP-ASan. Te błędy związane z pamięcią mogą być powiązane z: uszkodzenie pamięci w aplikacji, które jest główną przyczyną jej bezpieczeństwa; Luki w zabezpieczeniach.
Możesz wyświetlić te dane w nowej „zrzutach stosu pamięci” Tab. do szczegółów problemu Panel Crashlytics.
Możesz też użyć nowego sygnału i filtra „Raport GWP-ASan”, aby szybko wyświetlić wszystkie problemy z tymi danymi.
Raporty GWP-ASan możesz otrzymywać, jeśli w swojej aplikacji wyraźnie włączysz GWP-ASan i użyjesz pakietu SDK Crashlytics dla NDK w wersji 18.3.6 lub nowszej (Firebase BoM w wersji 31.3.0 lub nowszej). Konfigurację GWP-ASan możesz przetestować, korzystając z przykładowego kodu natywnego w dokumentacji Androida.
Zgłaszanie wyjątków niekrytycznych
Oprócz automatycznego zgłaszania awarii aplikacji Crashlytics umożliwia też rejestrujesz niekrytyczne wyjątki i wysyłasz je do Ciebie przy następnej aplikacji. nowych funkcji.
Używaj metody recordException
, aby rejestrować niekrytyczne wyjątki w kodzie
catch
blokady. Przykład:
Kotlin+KTX
try { methodThatThrows() } catch (e: Exception) { Firebase.crashlytics.recordException(e) // handle your exception here }
Java
try { methodThatThrows(); } catch (Exception e) { FirebaseCrashlytics.getInstance().recordException(e); // handle your exception here }
Wszystkie zarejestrowane wyjątki są wyświetlane w konsoli Firebase jako problemy niekrytyczne. Podsumowanie problemu zawiera wszystkie informacje o stanie, z których zwykle otrzymujesz informacje. z podziałem na wersje Androida i urządzenia sprzętowe.
Crashlytics przetwarza wyjątki w dedykowanym wątku w tle w zminimalizować wpływ na wydajność aplikacji. Ograniczanie sieci użytkowników ruchu, Crashlytics grupa zarejestrowała wyjątki razem i wysyła do nich przy następnym uruchomieniu aplikacji.
Pobierz logi menu nawigacyjnego
Logi menu nawigacyjnego pozwalają lepiej poznać interakcje użytkownika do których doprowadziło do awarii, błędu niekrytycznego lub błędu ANR. Te logi mogą być przydatne podczas próby odtworzenia i debugowania problemu.
Logi menu nawigacyjnego są generowane przez Google Analytics, więc aby je uzyskać, musisz Trzeba włącz Google Analytics. dla projektu Firebase dodaj pakiet SDK Firebase dla aplikacji Google Analytics do Twojej aplikacji. Po spełnieniu tych wymagań logi menu nawigacyjnego są automatycznie tworzone dołączany do danych zdarzenia na karcie Dzienniki podczas wyświetlania szczegółów. danego 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. Plik z logiem informacji o elementach nawigacyjnych screen_view
zawiera parametr firebase_screen_class
.
Logi ścieżek zawierają też wszystkie zdarzenia niestandardowe, które ręcznie rejestrujesz w sesji użytkownika, w tym dane parametrów zdarzenia. Te dane pomagają wyświetlić serię działań użytkownika, które doprowadziły do awarii, błędów niekrytycznych lub błędów ANR.
Pamiętaj, że możesz kontrolować zbieranie i wykorzystywanie danych z usługi Google Analytics, który zawiera dane umieszczane w dziennikach menu nawigacyjnego.
Włącz raportowanie akceptacji
Domyślnie Crashlytics automatycznie zbiera raporty o awariach na użytkowników aplikacji. Aby zapewnić użytkownikom większą kontrolę nad przesyłanymi danymi, możesz włączyć raportowanie z wymaganiem zgody użytkownika, wyłączając raportowanie automatyczne i wysyłając dane do Crashlytics tylko wtedy, gdy zdecydujesz się na to w kodze:
W bloku
application
plikuAndroidManifest.xml
dodaj tagmeta-data
, aby wyłączyć automatyczne zbieranie danych:<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
Włącz zbieranie danych dla wybranych użytkowników, wywołując dane Crashlytics zastępowania kolekcji w czasie działania. Wartość zastąpienia jest zachowywana w przypadku kolejnych uruchomień aplikacji, aby Crashlytics mogła automatycznie zbierać raporty. Aby zrezygnować automatycznego zgłaszania awarii, podaj
false
jako wartość zastąpienia. Po ustawieniu dofalse
, nowa wartość będzie stosowana dopiero przy następnym uruchomieniu aplikacji.Kotlin+KTX
Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)
Java
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
Zarządzanie danymi z analizy awarii
Statystyki awarii pomagają rozwiązywać problemy, porównując Twój zanonimizowany stos umożliwia śledzenie logów innych aplikacji Firebase i informację, czy problem jest jako część większego trendu. W przypadku wielu problemów statystyki awarii udostępniają nawet zasoby, które pomogą Ci w debugowaniu awarii.
Statystyki awarii wykorzystują zbiorcze dane o awariach, aby identyfikować typowe trendy dotyczące stabilności. Jeśli nie chcesz udostępniać danych o aplikacji, możesz zrezygnować ze Statystyk awarii w menu Statystyki awarii u góry listy problemów Crashlytics w konsoli Firebase.