Dostosowywanie raportów o awariach Firebase Crashlytics


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

  • 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.

Zgłaszanie wyjątków

Zgłaszanie wykrytych wyjątków

Jeśli są pewne wyjątki, możesz użyć pakietu SDK Crashlytics zgłaszaj je jako zdarzenia niekrytyczne. Te zdarzenia są rejestrowane na urządzeniu oraz jest wysyłana razem z następnym raportem o błędach krytycznych lub po ponownym uruchomieniu urządzenia przez użytkownika. w całej grze.

Wyjątki możesz rejestrować w C# za pomocą tej metody:

Crashlytics.LogException(Exception ex);

Spodziewane wyjątki możesz rejestrować w blokach try/catch w grze:

try {
    myMethodThatThrows();
} catch (Exception e) {
   Crashlytics.LogException(e);
   // handle your exception here!
}

Zgłaszanie niewykrytych wyjątków

Dotyczy niewykrytych wyjątków, które nie powodują awarii gry (na przykład wyjątki od języka C# w logice gry), możesz je zgłosić przez pakiet Crashlytics SDK. jako krytyczne przez ustawienie usługę Crashlytics.ReportUncaughtExceptionsAsFatal do true, gdzie zainicjuj Crashlytics w projekcie Unity , Te zdarzenia są zgłaszane do usługi Crashlytics w czasie rzeczywistym bez konieczności ponownego uruchamiania gry przez użytkownika.

Raportowanie tych niewykrytych wyjątków jako krytycznych zdarzeń oznacza, że będą one uwzględniane w statystykach dotyczących użytkowników, którzy nie mieli żadnych awarii, oraz w alertach dotyczących szybkości.

Pamiętaj, że awarie natywne są zawsze zgłaszane jako zdarzenia krytyczne. Te zdarzeń są rejestrowane na urządzeniu i wysyłane, gdy użytkownik ponownie uruchomi tę 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 z uszkodzoną pamięcią

W przypadku aplikacji na Androida, które korzystają z IL2CPP, Crashlytics może pomóc 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.

  • Te dane możesz wyświetlić na nowej karcie „Ścieżki sterowania pamięci”, która pojawi się po kliknięciu szczegółów problemu na Crashlytics panelu.

  • Możesz też użyć nowego sygnału i filtra „Raport GWP-ASan”, aby szybko wyświetlić wszystkie problemy z tymi danymi.

Raporty o pamięci GWP-ASan możesz otrzymywać, jeśli Twoja aplikacja używa najnowszego pakietu SDK Crashlytics do Unity (w wersji 10.7.0 lub nowszej) i GWP-ASan jest w niej wyraźnie włączona (musisz zmodyfikować plik manifestu aplikacji na Androida). Jeśli w aplikacji jest kod C++, możesz przetestować konfigurację GWP-ASan, korzystając z przykładowego kodu natywnego w dokumentacji Androida.

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), a nawet filtrować dane zdarzeń według kluczy niestandardowych (menu Filtr u góry strony).

Gdy funkcja jest wywoływana wielokrotnie, nowe wartości dla istniejących kluczy będą aktualizować wartość, a przy wystąpieniu awarii zostanie zarejestrowana tylko najnowsza wartość.

Crashlytics.SetCustomKey(string key, string value);

Dodaj niestandardowe komunikaty logu

Zalogowane komunikaty są powiązane z danymi o awarii i widoczne w panelu Firebase Crashlytics podczas przeglądania konkretnej awarii.

Crashlytics.Log(string message);

Ustawianie identyfikatorów użytkowników

Możesz użyć numeru identyfikacyjnego, tokena lub wartości zaszyfrowanej, aby jednoznacznie zidentyfikować użytkownika końcowego aplikacji bez ujawniania lub przesyłania jego danych osobowych. Możesz też ją wyczyścić, ustawiając pusty ciąg znaków. Ta wartość jest wyświetlana w panelu Firebase Crashlytics, gdy wyświetlając konkretną awarię.

Crashlytics.SetUserId(string identifier);

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. Możesz dać użytkownikom większą kontrolę nad danymi, które wysyłają, pozwalając im na zgłaszanie awarii.

Aby wyłączyć automatyczne zbieranie danych i inicjować Crashlytics tylko w przypadku wybranych użytkowników, wywołaj zastąpienie zbierania danych Crashlytics w czasie wykonywania. Wartość zastąpienia jest zachowywana przy każdym uruchomieniu aplikacji, aby Crashlytics mogła automatycznie zbierać raporty. Aby zrezygnować z automatycznego zgłaszania awarii, false. Jeśli ustawisz wartość false, nowa wartość zacznie obowiązywać dopiero po ponownym uruchomieniu aplikacji.

Crashlytics.IsCrashlyticsCollectionEnabled = 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.