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
Jeśli jeszcze tego nie zrobiłeś, skonfiguruj i zainicjuj Firebase w swoim projekcie Flutter.
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
W katalogu głównym projektu Flutter uruchom następujące polecenie, aby zainstalować wtyczkę Crashlytics Flutter:
flutter pub add firebase_crashlytics
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.
Po zakończeniu przebuduj swój projekt Flutter:
flutter run
(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.
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)
doZone
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"), ),
Twórz i uruchamiaj swoją aplikację.
Wymuś zgłoszenie wyjątku testowego w celu wysłania pierwszego raportu aplikacji:
Otwórz aplikację z urządzenia testowego lub emulatora.
W aplikacji naciśnij przycisk wyjątku testowego dodany za pomocą powyższego kodu.
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
Dostosuj ustawienia raportów o awariach, dodając opcjonalne raporty, dzienniki, klucze i śledzenie dodatkowych błędów niekrytycznych.
Zintegruj się z Google Play , aby móc filtrować raporty o awariach aplikacji na Androida według ścieżki Google Play bezpośrednio w panelu Crashlytics. Pozwala to lepiej skoncentrować pulpit nawigacyjny na określonych kompilacjach.
Wyświetlaj ślady stosu i statystyki awarii wraz z kodem w oknie App Quality Insights w Android Studio (dostępne począwszy od Electric Eel 2022.1.1).