| Выберите платформу: | iOS+ Android Android NDK Flutter Unity |
В этом руководстве рассказывается, как начать работу с Firebase Crashlytics в приложении Flutter.
После того как вы настроите плагин Crashlytics Flutter в приложении, вы сможете получать подробные отчеты о сбоях в консоли Firebase.
Для настройки Crashlytics нужно использовать как инструмент командной строки, так и IDE. Чтобы завершить настройку, вам нужно принудительно вызвать тестовое исключение, чтобы отправить первый отчет о сбое в Firebase.
Подготовка
Если вы ещё этого не сделали, настройте и инициализируйте Firebase в проекте Flutter.
Рекомендуется. Чтобы автоматически получать журналы навигации и понимать, какие действия пользователя привели к сбою, некритической ошибке или событию ANR, включите Google Analytics в проекте Firebase.
Если вы создаете новый проект Firebase, включите Google Analytics в процессе его создания.
Если вы используете имеющийся проект Firebase, в котором не включена Google Analytics, откройте
Настройки > Интеграции на консоли Firebase и включите ее.
Обратите внимание, что журналы цепочки навигации доступны для всех платформ Android и Apple, поддерживаемых Crashlytics (кроме watchOS).
Шаг 1. Добавьте Crashlytics в проект Flutter
В корневом каталоге проекта Flutter выполните следующую команду, чтобы установить плагин Flutter для Crashlytics.
Чтобы использовать журналы навигационной цепочки, добавьте в приложение плагин Flutter для Google Analytics. Убедитесь, что в проекте Firebase включена Google Аналитика.
flutter pub add firebase_crashlytics && flutter pub add firebase_analyticsВ корневом каталоге проекта Flutter выполните следующую команду:
flutterfire configureВыполнение этой команды гарантирует, что конфигурация Firebase в приложении Flutter будет актуальной, а для Android добавит в приложение необходимый плагин Gradle Crashlytics.
После этого пересоберите проект Flutter:
flutter runНеобязательно. Если в вашем проекте Flutter используется флаг
--split-debug-info(и, возможно, флаг--obfuscate), чтобы в приложениях отображались понятные трассировки стека, необходимо выполнить дополнительные действия.Платформы Apple. Убедитесь, что в вашем проекте используются рекомендованные версии Flutter (3.12.0 или более поздняя) и плагина Flutter Crashlytics (3.3.4 или более поздняя). Это позволит автоматически создавать и загружать символы Flutter (файлы dSYM) в Crashlytics.
Android: используйте Firebase CLI (версия 11.9.0 или более поздняя), чтобы загрузить символы отладки Flutter. Чтобы сообщить о сбое в работе обфусцированного кода, сначала нужно загрузить символы отладки. Это необходимо сделать до отправки отчета о сбое.
В корневом каталоге проекта Flutter выполните следующую команду:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
FIREBASE_APP_ID: идентификатор приложения Firebase для Android (не название пакета)
Пример идентификатора приложения Firebase для Android:1:567383003300:android:17104a2ced0c9b9bPATH/TO/symbols– тот же каталог, который вы передаете флагу--split-debug-infoпри создании приложения.
Шаг 2. Настройте обработчики сбоев
Вы можете автоматически перехватывать все ошибки, возникающие в фреймворке Flutter, переопределив FlutterError.onError с помощью 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());
}
Чтобы отслеживать асинхронные ошибки, которые не обрабатываются фреймворком Flutter, используйте 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());
}
Примеры обработки других типов ошибок можно найти в разделе Как настроить отчеты о сбоях.
Шаг 3. Завершите настройку, вызвав сбой приложения
Чтобы завершить настройку Crashlytics и посмотреть первые данные на панели управления Crashlytics в консоли Firebase, необходимо принудительно вызвать тестовое исключение.
Добавьте в приложение код, который можно использовать, чтобы принудительно вызвать тестовое исключение.
Если вы добавили обработчик ошибок, который вызывает
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)дляZoneверхнего уровня, то можете использовать следующий код, чтобы добавить в приложение кнопку, которая при нажатии вызывает тестовое исключение:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),Создайте сборку и запустите приложение.
Чтобы отправить первый отчет приложения, принудительно вызовите исключение:
Откройте приложение на тестовом устройстве или эмуляторе.
В приложении нажмите кнопку тестового исключения, которую вы добавили с помощью кода выше.
В консоли Firebase перейдите на панель DevOps & Engagement > Crashlytics, чтобы проверить отчет о сбое при тестировании.
Если вы обновили консоль, но тестовое падение не появилось в течение пяти минут, включите ведение журнала отладки, чтобы проверить, отправляет ли ваше приложение отчеты о падениях.
Вот и все! Crashlytics теперь отслеживает сбои в вашем приложении, а на устройствах Android – также некритические ошибки и ошибки ANR. Чтобы посмотреть все отчеты и статистику, перейдите на Crashlytics панель управления.
Дальнейшие действия
Настройте отчеты о сбоях, добавив отчеты с запросом согласия, журналы, ключи и отслеживание дополнительных некритических ошибок.
Интегрируйте с Google Play, чтобы фильтровать отчеты о сбоях приложения для Android по Google Play прямо на панели управления Crashlytics. Это позволяет лучше сосредоточиться на определенных сборках.
Просматривайте трассировки стека и статистику сбоев рядом с кодом в окне Статистика качества приложений в Android Studio (доступно начиная с версии Electric Eel 2022.1.1).
Экспортируйте данные в BigQuery или Cloud Logging, чтобы использовать расширенные функции анализа, например отправлять запросы к данным, создавать собственные панели управления и настраивать специальные оповещения.