Zacznij korzystać z Firebase Crashlytics

W tym przewodniku Szybki start opisano, jak skonfigurować Firebase Crashlytics w aplikacji za pomocą wtyczki Crashlytics Flutter, aby uzyskać kompleksowe raporty o awariach w konsoli Firebase.

Konfigurowanie Crashlytics wymaga użycia zarówno narzędzia wiersza poleceń, jak i środowiska IDE. Aby zakończyć konfigurację, musisz wymusić zgłoszenie wyjątku testowego, aby wysłać pierwszy raport o awarii do Firebase.

Zanim zaczniesz

  1. Jeśli jeszcze tego nie zrobiłeś, skonfiguruj i zainicjuj Firebase w swoim projekcie Flutter.

  2. Zalecane : aby uzyskać dostęp do takich funkcji, jak użytkownicy bez awarii, logi nawigacyjne i alerty dotyczące prędkości, musisz włączyć Google Analytics w swoim projekcie Firebase.

    Wszystkie platformy Android i Apple obsługiwane przez Crashlytics (z wyjątkiem watchOS) mogą korzystać z tych funkcji Google Analytics.

    Upewnij się, że Google Analytics jest włączone w Twoim projekcie Firebase: Przejdź do > Ustawienia projektu > zakładka Integracje , a następnie postępuj zgodnie z instrukcjami wyświetlanymi na ekranie dla Google Analytics.

Krok 1 : Dodaj Crashlytics do swojego projektu Flutter

  1. W katalogu głównym projektu Flutter uruchom następujące polecenie, aby zainstalować wtyczkę Crashlytics Flutter:

    flutter pub add firebase_crashlytics
    
  2. Z katalogu głównego projektu Flutter uruchom następującą komendę:

    flutterfire configure
    

    Uruchomienie tego polecenia gwarantuje, że konfiguracja Firebase aplikacji Flutter jest aktualna, a w przypadku systemu Android dodaje do aplikacji wymaganą wtyczkę Crashlytics Gradle.

  3. Po zakończeniu odbuduj swój projekt Flutter:

    flutter run
    
  4. (Opcjonalnie) Jeśli Twój projekt Flutter używa flagi --split-debug-info (i opcjonalnie także flagi --obfuscate ), wymagane są dodatkowe kroki, aby wyświetlić czytelne ślady stosu dla Twoich aplikacji.

    • Platformy Apple: Upewnij się, że Twój projekt korzysta z zalecanej wersji konfiguracji (Flutter 3.12.0+ i wtyczka Crashlytics Flutter 3.3.4+), aby Twój projekt mógł automatycznie generować i przesyłać symbole Flutter (pliki dSYM) do Crashlytics.

    • Android: Użyj interfejsu CLI Firebase (wersja 11.9.0 lub nowsza), aby przesłać symbole debugowania Flutter. Zanim zgłosisz awarię spowodowaną zaciemnioną kompilacją kodu, musisz przesłać symbole debugowania.

      Z katalogu głównego projektu Flutter uruchom następującą komendę:

      firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
      • FIREBASE_APP_ID : Twój identyfikator aplikacji Firebase na Androida (nie nazwa pakietu)
        Przykładowy identyfikator aplikacji Firebase na Androida: 1:567383003300:android:17104a2ced0c9b9b

      • PATH/TO /symbols : ten sam katalog, który przekazujesz do flagi --split-debug-info podczas budowania aplikacji

Krok 2 : Skonfiguruj programy obsługi awarii

Możesz automatycznie wyłapać wszystkie błędy generowane w ramach Flutter, zastępując FlutterError.onError za pomocą FirebaseCrashlytics.instance.recordFlutterFatalError :

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp();

  // Pass all uncaught "fatal" errors from the framework to Crashlytics
  FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;

  runApp(MyApp());
}

Aby wychwycić błędy asynchroniczne, które nie są obsługiwane przez platformę Flutter, użyj PlatformDispatcher.instance.onError :

Future<void> main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();
    FlutterError.onError = (errorDetails) {
      FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
    };
    // Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
    PlatformDispatcher.instance.onError = (error, stack) {
      FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
      return true;
    };
    runApp(MyApp());

}

Przykłady postępowania z innymi typami błędów można znaleźć w artykule Dostosowywanie raportów o awariach .

Krok 3 : Wymuś awarię testową, aby zakończyć konfigurację

Aby zakończyć konfigurowanie Crashlytics i zobaczyć początkowe dane w panelu kontrolnym Crashlytics konsoli Firebase, musisz wymusić zgłoszenie wyjątku testowego.

  1. Dodaj do aplikacji kod, którego możesz użyć do wymuszenia zgłoszenia wyjątku testowego.

    Jeśli dodałeś moduł obsługi błędów wywołujący FirebaseCrashlytics.instance.recordError(error, stack, fatal: true) do najwyższego poziomu Zone , możesz użyć poniższego kodu, aby dodać do aplikacji przycisk, który po naciśnięciu generuje zgłoszenie wyjątek testowy:

    TextButton(
        onPressed: () => throw Exception(),
        child: const Text("Throw Test Exception"),
    ),
    
  2. Kompiluj i uruchamiaj swoją aplikację.

  3. Wymuś zgłoszenie wyjątku testowego, aby wysłać pierwszy raport aplikacji:

    1. Otwórz aplikację na urządzeniu testowym lub emulatorze.

    2. W aplikacji naciśnij przycisk wyjątku testu dodany za pomocą powyższego kodu.

  4. Przejdź do panelu Crashlytics konsoli Firebase, aby zobaczyć awarię testową.

    Jeśli odświeżyłeś konsolę i po pięciu minutach nadal nie widzisz awarii testowej, włącz rejestrowanie debugowania , aby sprawdzić, czy aplikacja wysyła raporty o awariach.


I to wszystko! Crashlytics monitoruje teraz Twoją aplikację pod kątem awarii, a w systemie Android – błędów niekrytycznych i błędów ANR. Odwiedź pulpit nawigacyjny Crashlytics , aby wyświetlić i sprawdzić wszystkie swoje raporty i statystyki.

Następne kroki