| Wybierz platformę: | iOS+ Android Android NDK Flutter Unity |
Z tego przewodnika dowiesz się, jak zacząć korzystać z Firebase Crashlytics w aplikacji Flutter.
Po skonfigurowaniu w aplikacji wtyczki Flutter Crashlytics możesz otrzymywać szczegółowe raporty o awariach w konsoli Firebase.
Konfigurowanie Crashlytics wymaga użycia zarówno narzędzia wiersza poleceń, jak i IDE. Aby dokończyć konfigurację, musisz wymusić zgłoszenie wyjątku testowego, aby wysłać do Firebase pierwszy raport o awarii.
Zanim zaczniesz
Jeśli jeszcze nie korzystasz z Firebase, skonfiguruj i zainicjuj tę usługę w projekcie Flutter.
Zalecane: aby automatycznie otrzymywać logi działań użytkownika, które pomogą Ci zrozumieć działania użytkownika prowadzące do awarii, błędu niekrytycznego lub błędu ANR, musisz włączyć Google Analytics w projekcie w Firebase.
Jeśli tworzysz nowy projekt w Firebase, włącz Google Analytics w trakcie procesu tworzenia projektu.
Jeśli używasz dotychczasowego projektu w Firebase bez włączonej usługi Google Analytics, możesz ją włączyć na stronie
Ustawienia > Integracje w konsoli Firebase.
Pamiętaj, że logi działań użytkownika są dostępne na wszystkich platformach Androida i Apple obsługiwanych przez Crashlytics (z wyjątkiem watchOS).
Krok 1. Dodaj Crashlytics do projektu Flutter
Aby zainstalować wtyczkę Flutter dla Crashlytics, uruchom to polecenie w katalogu głównym projektu Flutter.
Aby korzystać z logów działań użytkownika, dodaj też do aplikacji wtyczkę Flutter dla Google Analytics. Upewnij się, że w projekcie w Firebase jest włączona usługa Google Analytics.
flutter pub add firebase_crashlytics && flutter pub add firebase_analyticsW katalogu głównym projektu Flutter uruchom to polecenie:
flutterfire configureUruchomienie tego polecenia zapewnia, że konfiguracja Firebase aplikacji Flutter jest aktualna, a w przypadku Androida dodaje do aplikacji wymaganą wtyczkę Gradle Crashlytics.
Gdy to zrobisz, ponownie skompiluj projekt Flutter:
flutter run(Opcjonalnie) Jeśli Twój projekt Flutter używa flagi
--split-debug-info(i opcjonalnie flagi--obfuscate), musisz wykonać dodatkowe czynności, aby wyświetlać czytelne zrzuty stosu dla aplikacji.Platformy Apple: upewnij się, że Twój projekt używa zalecanej konfiguracji wersji (Flutter 3.12.0 lub nowszy i wtyczka Crashlytics Flutter w wersji 3.3.4 lub nowszej), aby mógł automatycznie generować i przesyłać symbole Flutter (pliki dSYM) do Crashlytics.
Android: użyj interfejsu wiersza poleceń Firebase (w wersji 11.9.0 lub nowszej), aby przesłać symbole debugowania Flutter. Symbole debugowania musisz przesłać przed zgłoszeniem awarii z kompilacji kodu zaciemnionego.
W katalogu głównym projektu Flutter uruchom to polecenie:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
FIREBASE_APP_ID: identyfikator aplikacji Firebase na Androida (nie nazwa pakietu)
Przykładowy identyfikator aplikacji Firebase na Androida:1:567383003300:android:17104a2ced0c9b9bPATH/TO/symbols: ten sam katalog, który przekazujesz do flagi--split-debug-infopodczas tworzenia aplikacji.
Krok 2. Skonfiguruj moduły obsługi awarii
Możesz automatycznie wychwytywać wszystkie błędy, które występują w środowisku 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 wychwytywać 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 obsługi innych typów błędów znajdziesz w artykule o dostosowywaniu raportów o awariach.
Krok 3. Wymuś testową awarię, aby zakończyć konfigurację
Aby dokończyć konfigurowanie usługi Crashlytics i wyświetlić początkowe dane w panelu Crashlytics w konsoli Firebase, musisz wymusić zgłoszenie wyjątku testowego.
Dodaj do aplikacji kod, którego możesz użyć do wymuszenia zgłoszenia wyjątku testowego.
Jeśli do najwyższego poziomu
Zonedodano moduł obsługi błędów, który wywołujeFirebaseCrashlytics.instance.recordError(error, stack, fatal: true), możesz użyć poniższego kodu, aby dodać do aplikacji przycisk, który po naciśnięciu zgłasza wyjątek testowy:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),Skompiluj i uruchom aplikację.
Wymuś zgłoszenie wyjątku testowego, aby wysłać pierwszy raport aplikacji:
Otwórz aplikację na urządzeniu testowym lub w emulatorze.
W aplikacji naciśnij przycisk testowego wyjątku dodany za pomocą powyższego kodu.
W konsoli Firebase otwórz panel DevOps i zaangażowanie > Crashlytics, aby sprawdzić, czy jest tam raport o awarii testowej.
Jeśli po odświeżeniu konsoli i odczekaniu 5 minut nadal nie widzisz testowej awarii, włącz dziennik debugowania, aby sprawdzić, czy aplikacja wysyła raporty o awariach.
To wszystko. Crashlytics monitoruje teraz Twoją aplikację pod kątem awarii, a na Androidzie – niekrytycznych błędów i błędów ANR. Otwórz panel Crashlytics, aby wyświetlić i przeanalizować wszystkie raporty i statystyki.
Dalsze kroki
Dostosuj konfigurację raportowania awarii, dodając raportowanie po wyrażeniu zgody, logi, klucze i śledzenie dodatkowych błędów niekrytycznych.
Zintegruj z Google Play, aby móc filtrować raporty o awariach aplikacji na Androida według ścieżki Google Play bezpośrednio w panelu Crashlytics. Dzięki temu możesz lepiej skupić panel na konkretnych kompilacjach.
Wyświetlaj zrzuty stosu i statystyki awarii obok kodu w oknie Statystyki jakości aplikacji w Android Studio (dostępne od wersji Electric Eel 2022.1.1).
Eksportuj dane do BigQuery lub Cloud Logging, aby korzystać z zaawansowanych funkcji i analiz, takich jak wysyłanie zapytań do danych, tworzenie niestandardowych paneli i konfigurowanie alertów niestandardowych.