Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Начните работу с Firebase Crashlytics

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

В этом кратком руководстве описывается, как настроить Firebase Crashlytics в вашем приложении с помощью подключаемого модуля Crashlytics Flutter, чтобы вы могли получать исчерпывающие отчеты о сбоях в консоли Firebase.

Настройка Crashlytics включает использование как инструмента командной строки, так и вашей IDE. Чтобы завершить настройку, вам нужно принудительно создать тестовое исключение, чтобы отправить ваш первый отчет о сбое в Firebase.

Прежде чем вы начнете

  1. Если вы еще этого не сделали, настройте и инициализируйте Firebase в своем проекте Flutter.

  2. Рекомендуется . Чтобы получить такие функции, как пользователи без сбоев, журналы навигации и оповещения о скорости, вам необходимо включить Google Analytics в своем проекте Firebase.

    Все платформы Android и Apple, поддерживаемые Crashlytics (кроме watchOS), могут использовать эти функции Google Analytics.

    Убедитесь, что Google Analytics включен в вашем проекте Firebase: перейдите в « » > «Настройки проекта» > вкладка « Интеграции », затем следуйте инструкциям на экране для Google Analytics.

Шаг 1. Добавьте Crashlytics в свой проект Flutter.

  1. В корне вашего проекта Flutter выполните следующую команду, чтобы установить плагин Crashlytics Flutter:

    flutter pub add firebase_crashlytics
    
  2. В корневом каталоге вашего проекта Flutter выполните следующую команду:

    flutterfire configure
    

    Выполнение этой команды гарантирует, что конфигурация Firebase вашего приложения Flutter обновлена, а для Android добавляет в ваше приложение необходимый подключаемый модуль Crashlytics Gradle.

  3. После завершения перестройте свой проект Flutter:

    flutter run
    

Шаг 2. Настройте обработчики сбоев

Вы можете автоматически перехватывать все ошибки, возникающие в среде Flutter, переопределяя FlutterError.onError с помощью FirebaseCrashlytics.instance.recordFlutterFatalError :

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp();

  // Pass all uncaught errors from the framework to Crashlytics.
  FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;

  runApp(MyApp());
}

Если вы используете зоны, инструментарий обработчика ошибок зоны будет перехватывать ошибки, которые не перехвачены инфраструктурой Flutter (например, в обработчике кнопки onPressed ):

void main() async {
  runZonedGuarded<Future<void>>(() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();

    FlutterError.onError =
       FirebaseCrashlytics.instance.recordFlutterFatalError;

    runApp(MyApp());
  }, (error, stack) =>
    FirebaseCrashlytics.instance.recordError(error, stack, fatal: true));
}

Примеры обработки других типов ошибок см. в разделе Настройка отчетов о сбоях .

Шаг 3. Принудительно завершите настройку с помощью тестового сбоя.

Чтобы завершить настройку Crashlytics и увидеть исходные данные на панели инструментов Crashlytics консоли Firebase, вам нужно принудительно выдать тестовое исключение.

  1. Добавьте в свое приложение код, который можно использовать для принудительного создания тестового исключения.

    Если вы добавили обработчик ошибок, который вызывает FirebaseCrashlytics.instance.recordError(error, stack, fatal: true) в Zone верхнего уровня, вы можете использовать следующий код, чтобы добавить в приложение кнопку, которая при нажатии вызывает тестовое исключение:

    TextButton(
        onPressed: () => throw Exception(),
        child: const Text("Throw Test Exception"),
    ),
    
  2. Создайте и запустите свое приложение.

  3. Принудительно вызовите тестовое исключение, чтобы отправить первый отчет вашего приложения:

    1. Откройте свое приложение на тестовом устройстве или в эмуляторе.

    2. В своем приложении нажмите кнопку тестового исключения, которую вы добавили с помощью приведенного выше кода.

  4. Перейдите на панель инструментов Crashlytics консоли Firebase, чтобы увидеть сбой вашего теста.

    Если вы обновили консоль и через пять минут по-прежнему не видите сбоя теста, включите ведение журнала отладки , чтобы узнать, отправляет ли ваше приложение отчеты о сбоях.


Вот и все! Теперь Crashlytics отслеживает сбои вашего приложения, а на Android — нефатальные ошибки и ошибки ANR. Посетите панель инструментов Crashlytics , чтобы просмотреть и изучить все свои отчеты и статистику.

Следующие шаги