W panelu Crashlytics możesz kliknąć problem i wyświetlić szczegółowy raport o zdarzeniach. Możesz dostosować te raporty, aby lepiej zrozumieć, co dzieje się w Twojej aplikacji i okoliczności dotyczące zdarzeń zgłoszonych do Crashlytics.
Zgłoś do Crashlytics zauważone wyjątki i niewyłapane wyjątki.
Dołącz raporty GWP-ASan, aby debugować problemy związane z uszkodzeniem pamięci.
Dostosuj aplikację tak, aby logowała klucze niestandardowe, niestandardowe komunikaty dziennika i identyfikatory użytkowników.
automatycznie pobierać dzienniki menu nawigacyjnego, jeśli Twoja aplikacja korzysta z pakietu SDK Firebase dla Google Analytics. Logi te zapewniają wgląd w działania użytkownika prowadzące do zdarzenia w aplikacji zebranego przez Crashlytics.
Wyłącz automatyczne raportowanie o awariach i włącz przekazywanie raportów o awariach użytkownikom. Pamiętaj, że domyślnie Crashlytics automatycznie zbiera raporty o awariach wszystkich użytkowników Twojej aplikacji.
Zgłoś wyjątki
Raport dotyczący wyjątków
Jeśli występują oczekiwane wyjątki, możesz poprosić pakiet SDK Crashlytics na ich zgłoszenie jako zdarzeń niekrytycznych. Zdarzenia te są rejestrowane na urządzeniu, a następnie wysyłane wraz z następnym raportem o zdarzeniach krytycznych lub po ponownym uruchomieniu gry przez użytkownika.
W języku C# możesz rejestrować wyjątki, korzystając z tej metody:
Crashlytics.LogException(Exception ex);
Oczekiwane wyjątki możesz dodać do bloków testowania w grze:
try { myMethodThatThrows(); } catch (Exception e) { Crashlytics.LogException(e); // handle your exception here! }
Zgłaszanie niewykrytych wyjątków
W przypadku niewykrytych wyjątków, które nie powodują awarii gry (np. niewyłapane wyjątki C# w logice gry), możesz poprosić pakiet SDK Crashlytics na zgłoszenie ich jako zdarzeń krytycznych. W tym celu ustaw właściwość Crashlytics.ReportUncaughtExceptionsAsFatal
na true
w miejscu zainicjowania Crashlytics w projekcie Unity.
Te zdarzenia są zgłaszane do Crashlytics w czasie rzeczywistym bez konieczności ponownego uruchamiania gry przez użytkownika.
Zgłoszenie tych niewykrytych wyjątków jako zdarzeń krytycznych oznacza, że będą one uwzględniane w statystykach użytkowników bez awarii oraz jako alerty o szybkości.
Pamiętaj, że awarie natywne są zawsze zgłaszane jako zdarzenia krytyczne. Zdarzenia te są rejestrowane na urządzeniu i wysyłane, gdy użytkownik ponownie uruchomi grę.
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(); }
Dołącz raporty GWP-ASan, aby debugować problemy związane z uszkodzeniem pamięci
W przypadku aplikacji na Androida, które używają IL2CPP, Crashlytics pomaga w debugowaniu awarii spowodowanych przez błędy pamięci natywnej, zbierając raporty GWP-ASan. Te błędy związane z pamięcią mogą być związane z uszkodzeniem pamięci w aplikacji, co jest główną przyczyną luk w zabezpieczeniach aplikacji.
Możesz wyświetlić te dane na nowej karcie „Zrzuty stosu pamięci”, gdy klikniesz szczegóły problemu w panelu Crashlytics.
Możesz też użyć nowego sygnału „Raport GWP-ASan” i filtra, aby szybko wyświetlić wszystkie problemy związane z tymi danymi.
Możesz uzyskać raporty dotyczące pamięci GWP-ASan, jeśli Twoja aplikacja korzysta z najnowszego pakietu SDK Crashlytics na Unity (wersja 10.7.0 lub nowszego) i ma jawnie włączoną funkcję GWP-ASan (wymaga zmodyfikowania pliku manifestu aplikacji na Androida). Jeśli masz w aplikacji kod w języku C++, możesz przetestować konfigurację GWP-ASan, korzystając z przykładowego kodu natywnego w dokumentacji Androida.
Dodaj klucze niestandardowe
Klucze niestandardowe pomagają określić stan aplikacji, który doprowadził do awarii. Do raportów o awariach możesz powiązać wybrane pary klucz-wartość, a następnie za pomocą kluczy niestandardowych wyszukiwać i filtrować raporty o awariach w konsoli Firebase.
- W panelu Crashlytics możesz wyszukiwać problemy pasujące do klucza niestandardowego.
- Gdy sprawdzasz konkretny problem w konsoli, możesz wyświetlić klucze niestandardowe powiązane z każdym zdarzeniem (podkarta Klucze), a nawet filtrować zdarzenia według kluczy niestandardowych (w menu Filtr u góry strony).
Wielokrotne wywołanie nowych wartości istniejących kluczy powoduje zaktualizowanie wartości. Przy rejestrowaniu awarii jest przechwytywana tylko najnowsza wartość.
Crashlytics.SetCustomKey(string key, string value);
Dodawanie niestandardowych komunikatów logu
Logowane wiadomości są powiązane z danymi awarii i są widoczne w panelu Firebase Crashlytics podczas wyświetlania konkretnej awarii.
Crashlytics.Log(string message);
Konfigurowanie identyfikatorów użytkowników
Możesz użyć numeru identyfikacyjnego, tokena lub zahaszowanej wartości, aby jednoznacznie zidentyfikować użytkownika końcowego aplikacji bez ujawniania ani przesyłania jego danych osobowych. Możesz też wyczyścić tę wartość, ustawiając ją jako pusty ciąg znaków. Ta wartość jest wyświetlana w panelu Firebase Crashlytics podczas wyświetlania konkretnej awarii.
Crashlytics.SetUserId(string identifier);
Pobieranie dzienników menu nawigacyjnego
Logi menu nawigacyjnego pozwalają lepiej zrozumieć interakcje użytkownika z aplikacją, które doprowadziły do awarii, błędu niekrytycznego lub błędu ANR. Logi mogą być przydatne podczas próby odtworzenia i debugowania problemu.
Logi menu nawigacyjnego są obsługiwane przez Google Analytics, więc aby je pobierać, musisz włączyć Google Analytics dla swojego projektu Firebase i dodać do aplikacji pakiet SDK Firebase dla Google Analytics. Po spełnieniu tych wymagań logi menu nawigacyjnego są automatycznie dołączane do danych zdarzenia na karcie Logi po wyświetleniu szczegółów problemu.
Pakiet SDK Analytics automatycznie rejestruje zdarzenie screen_view
, dzięki czemu w dziennikach menu nawigacyjnego znajduje się lista ekranów wyświetlonych przed zdarzeniem awarii, niekrytycznym lub ANR. Log menu nawigacyjnego screen_view
zawiera parametr firebase_screen_class
.
Są one też wypełniane wszystkimi zdarzeniami niestandardowymi, które rejestrujesz ręcznie w ramach sesji użytkownika, w tym danymi parametrów zdarzenia. Dane te pomagają pokazywać serię działań użytkowników, które doprowadziły do awarii, błędu niekrytycznego lub błędu ANR.
Pamiętaj, że możesz kontrolować zbieranie i wykorzystywanie danych Google Analytics, w tym danych wypełniających logi menu nawigacyjnego.
Włącz raportowanie dotyczące wyrażania zgody
Domyślnie Crashlytics automatycznie zbiera raporty o awariach wszystkich użytkowników Twojej aplikacji. Możesz dać użytkownikom większą kontrolę nad wysyłanymi danymi, zezwalając im na zgłaszanie awarii.
Aby wyłączyć automatyczne zbieranie danych i zainicjować Crashlytics tylko dla wybranych użytkowników, wywołaj zastąpienie zbierania danych Crashlytics w trakcie działania. Wartość zastąpienia jest utrzymywana po wszystkich wersjach aplikacji, więc Crashlytics może automatycznie zbierać raporty. Aby zrezygnować z automatycznego raportowania o awariach, przekaż false
jako wartość zastąpienia. Jeśli ustawisz wartość false
, nowa wartość będzie stosowana dopiero przy następnym uruchomieniu aplikacji.
Crashlytics.IsCrashlyticsCollectionEnabled = true
Zarządzanie danymi narzędzia Crash Insights
Statystyki awarii pomagają rozwiązywać problemy, porównując zanonimizowane zrzuty stosu z śladami z innych aplikacji Firebase i informując, czy Twój problem nie należy do większego trendu. W przypadku wielu problemów narzędzie Crash Insights udostępnia nawet zasoby, które pomagają debugować awarię.
Crash Insights używa zbiorczych danych o awariach, aby identyfikować typowe trendy związane ze stabilnością. Jeśli nie chcesz udostępniać danych o aplikacji, możesz zrezygnować z Statystyk awarii, korzystając z menu Statystyki awarii u góry listy problemów Crashlytics w konsoli Firebase.