Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Zacznij korzystać z Firebase Crashlytics

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

W tym krótkim wprowadzeniu opisano, jak skonfigurować usługę Firebase Crashlytics w aplikacji za pomocą wtyczki Crashlytics Flutter, aby uzyskać szczegółowe 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 w celu wysłania pierwszego raportu 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 korzystać z takich funkcji, jak użytkownicy bez awarii, dzienniki 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 systemu watchOS) mogą korzystać z tych funkcji Google Analytics.

    Upewnij się, że Google Analytics jest włączone w Twoim projekcie Firebase: przejdź do > Ustawienia projektu > karta 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. W katalogu głównym projektu Flutter uruchom następujące polecenie:

    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 przebuduj swój projekt Flutter:

    flutter run
    
  4. (Opcjonalnie) Jeśli Twój projekt Flutter używa flagi --split-debug-info (i opcjonalnie flagi --obfuscate ), musisz użyć interfejsu wiersza polecenia Firebase (wersja 11.9.0 lub nowsza), aby przesłać symbole Androida.

    W katalogu głównym projektu Flutter uruchom następujące polecenie:

    firebase crashlytics:symbols:upload --app=APP_ID PATH/TO/symbols

    Katalog PATH/TO /symbols jest tym samym katalogiem, który przekazujesz do flagi --split-debug-info podczas budowania aplikacji.

Krok 2 : Skonfiguruj procedury obsługi awarii

Możesz automatycznie przechwycić wszystkie błędy, które są zgłaszane w ramach Flutter, zastępując FlutterError.onError przez 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 przechwycić asynchroniczne błędy, 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());

}

Aby zapoznać się z przykładami postępowania w przypadku innych typów błędów, zobacz temat Dostosowywanie raportów o awariach .

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

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

  1. Dodaj do swojej 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, który wywołuje FirebaseCrashlytics.instance.recordError(error, stack, fatal: true) do Zone najwyższego poziomu, możesz użyć poniższego kodu, aby dodać do aplikacji przycisk, który po naciśnięciu powoduje wyjątek testowy:

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

  3. Wymuś zgłoszenie wyjątku testowego w celu wysłania pierwszego raportu aplikacji:

    1. Otwórz aplikację z urządzenia testowego lub emulatora.

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

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

    Jeśli po odświeżeniu konsoli nadal nie widzisz testowej awarii po pięciu minutach, 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 na Androidzie także błędów niekrytycznych i błędów ANR. Odwiedź pulpit nawigacyjny Crashlytics , aby wyświetlić i przeanalizować wszystkie swoje raporty i statystyki.

Następne kroki