Ten krótki przewodnik zawiera instrukcje konfigurowania w aplikacji Firebase Crashlytics za pomocą wtyczki Flutter Crashlytics, aby otrzymywać kompleksowe raporty o awariach w konsoli Firebase.
Aby skonfigurować Crashlytics, musisz użyć narzędzia wiersza poleceń i swojego IDE. Aby zakończyć konfigurację, musisz wymusić zgłoszenie wyjątku testowego, co spowoduje wysłanie raport o pierwszej awarii do Firebase.
Zanim zaczniesz
Jeśli jeszcze nie masz tego za sobą, skonfigurować i zainicjować Firebase w narzędziu Flutter, w projektach AI.
Zalecane: aby automatycznie otrzymywać logi ścieżki, które pomogą Ci zrozumieć działania użytkowników prowadzące do awarii, niekrytycznych awarii lub zdarzeń ANR, musisz włączyć Google Analytics w projekcie Firebase.
Jeśli w istniejącym projekcie Firebase nie ma Google Analytics możesz włączyć Google Analytics z poziomu Karta Integracje
w konsoli > Ustawienia projektuFirebase. Jeśli tworzysz nowy projekt Firebase, włącz Google Analytics w trakcie procesu tworzenia projektu.
Pamiętaj, że ścieżki przewijania są dostępne na wszystkich obsługiwanych przez Crashlytics platformach z Androidem i Apple (z wyjątkiem watchOS).
Krok 1. Dodaj Crashlytics do projektu Flutter
W katalogu głównym projektu Flutter uruchom podane niżej polecenie, aby zainstalować wtyczkę Flutter dla Crashlytics.
Aby korzystać z logów ścieżek, dodaj do aplikacji wtyczkę Fluttera dla Google Analytics. Sprawdź, czy w projekcie Firebase włączona jest usługa Google Analytics.
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
W katalogu głównym projektu Flutter uruchom to polecenie:
flutterfire configure
Uruchamiając to polecenie, masz pewność, że konfiguracja Firebase aplikacji Flutter jest aktualny, a na Androidzie dodaje wymagany Gradle Crashlytics. wtyczki do aplikacji.
Po zakończeniu ponownie skompiluj projekt Flutter:
flutter run
(Opcjonalnie) Jeśli Twój projekt Fluttera używa flagi
--split-debug-info
(i opcjonalnie też flagi--obfuscate
), musisz wykonać dodatkowe czynności, aby wyświetlić czytelne ścieżki stosu w przypadku swoich aplikacji.Platformy Apple: upewnij się, że w projekcie używany jest zalecany konfiguracji wersji (Flutter 3.12.0 i nowszych Crashlyticswtyczki Flutter 3.3.4 lub nowszej), dzięki którym projekt 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łasza awarię z kompilacji zaciemnionego kodu.
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ład identyfikatora aplikacji Firebase na Androida:1:567383003300:android:17104a2ced0c9b9b
PATH/TO/symbols
: ten sam katalog co są przekazywane do flagi--split-debug-info
podczas tworzenia aplikacji,
Krok 2. Skonfiguruj moduły obsługi awarii
Możesz automatycznie wychwytywać wszystkie błędy zgłaszane w ramach technologii Flutter
tę platformę, zastępując FlutterError.onError
kodem
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 funkcji
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 znajdziesz w artykule Dostosowywanie raportów o awariach.
Krok 3. Wymuś testowy błąd krytyczny, aby zakończyć konfigurację
Aby dokończyć konfigurowanie Crashlytics i zobaczyć początkowe dane w panelu Crashlytics konsoli Firebase, musisz wymusić wyjątek testowy.
Dodaj do swojej aplikacji kod, który służy do wymuszania wyjątku testowego rzucona.
Jeśli dodasz moduł obsługi błędów, który wywoła
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
naZone
najwyższego poziomu, możesz dodać przycisk do swojej aplikacji za pomocą tego kodu który po naciśnięciu zgłasza wyjątek testowy:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
Utworzyć i uruchomić aplikację.
Wymuś wyjątek testowy, aby wysłać pierwszy raport aplikacji:
Otwórz aplikację na urządzeniu testowym lub w emulatorze.
W aplikacji naciśnij przycisk testowania wyjątku dodany za pomocą powyżej.
Przejdź do Panel Crashlytics konsoli Firebase, aby zobaczyć awarię testową.
Jeśli po odświeżeniu konsoli nadal nie widzisz awarii testowej po 5 minutach. włącz rejestrowanie debugowania aby sprawdzić, czy aplikacja wysyła raporty o awariach.
To wszystko. Crashlytics monitoruje teraz Twoją aplikację pod kątem awarii oraz jest włączone
Android, błędy niekrytyczne i błędy ANR. Otwórz panel Crashlytics, aby wyświetlić wszystkie raporty i statystyki oraz je analizować.
Dalsze kroki
Dostosuj konfigurację raportowania awarii, dodając opcjonalne raportowanie, logi, klucze i śledzenie dodatkowych błędów niekrytycznych.
Integracja z Google Play, dzięki której możesz filtrować raporty o awariach aplikacji na Androida według ścieżki Google Play bezpośrednio w panelu Crashlytics. Dzięki temu możesz się skupić w panelu konkretnych kompilacji.
Wyświetlanie śladów stosu i statystyk awarii obok kodu za pomocą okna Statystyki jakości aplikacji w Android Studio (dostępne od wersji Electric Eel 2022.1.1).