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

Создайте проект Firebase

Создайте проект firebase, перейдя в Firebase Crashlyticsсначала иду в visit consoleа затем щелкните значок Add project кнопку из открывшегося окна.

Описание изображения

Убедитесь, что поле Google Analytics выбрано

Описание изображения

Описание изображения

Описание изображения

установить Firebase CLI с помощью npm

(этот шаг необходим для выполнения команды flutterfire.)

npm install -g firebase-tools

Войдите в Firebase, используя свою учетную запись Google:

Войдите в Firebase, используя свою учетную запись Google, выполнив следующую команду:

вход в firebase

Описание изображения

Перечислив свои проекты Firebase, проверьте, правильно ли установлен интерфейс командной строки и есть ли доступ к вашей учетной записи. Выполните следующую команду:

firebase projects:list

Установите интерфейс командной строки FlutterFire
Установите FlutterFire CLI, выполнив следующую команду из любого каталога:

dart pub global activate flutterfire_cli

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

пример:

Описание изображения

Добавьте Crashlytics в свой проект Flutter

Чтобы установить плагин Crashlytics Flutter, выполните следующие команды по пути, по которому находится ваш проект флаттера, после запуска терминала в качестве администратора:

flutter pub add firebase_crashlytics

flutterfire configure

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

После запуска flutterfire configure нажмите Enter, выбрав проект firebase, который вы создали следующим образом.

Описание изображения

Наконец, нажмите Enter, выбрав платформу (будут выбраны Android и iOS, вы можете продолжить, нажав Enter).

Описание изображения

В конце этого процесса формируются два разных идентификатора приложения для Android и iOS.

Описание изображения

android\build.gradle следующие строки в файл gradle, как показано на рисунке

 // START: FlutterFire Configuration
        classpath 'com.google.gms:google-services:4.3.10'
        // END: FlutterFire Configuration
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
Войти в полноэкранный режим

Выйти из полноэкранного режима

Описание изображения

android\app\build.добавьте следующие строки в ваш файл gradle, как показано на рисунке

Описание изображения

// START: FlutterFire Configuration
apply plugin: 'com.google.gms.google-services'
// END: FlutterFire Configuration
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

dependencies {
   ...
}
}

apply plugin: 'com.google.firebase.crashlytics'
Войти в полноэкранный режим

Выйти из полноэкранного режима

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

flutter run

Ваш проект Firebase должен выглядеть так, как показано на рисунке.

Описание изображения

(Необязательно) Если в вашем проекте Flutter используется флаг —split-debug-info (и, необязательно, флаг —obfuscate), вам необходимо использовать Firebase CLI (v.11.9.0+) для загрузки символов Android.

В корневом каталоге вашего проекта Flutter выполните следующую команду:

firebase crashlytics:symbols:upload --app=APP_ID PATH/TO/symbols

Каталог PATH/TO/symbols — это тот же каталог, который вы передаете флагу —split-debug-info при сборке приложения.

Примечание. В настоящее время поддержка —split-debug-info доступна только для Android.
Для платформ Apple поддержка этой функции будет доступна в следующем выпуске, но вы можете получить к ней доступ уже сейчас, используя основной канал Flutter SDK.

Настройка обработчиков сбоев

Вы можете автоматически перехватывать все ошибки, возникающие в среде 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());
}
Войти в полноэкранный режим

Выйти из полноэкранного режима

Возвратите ошибку, чтобы проверить установку:

TextButton(
    onPressed: () => throw Exception(),
    child: const Text("Throw Test Exception"),
),
Войти в полноэкранный режим

Выйти из полноэкранного режима

Запустите ваше приложение.

Нажмите на кнопку Throw Test Exception, которую вы добавили, чтобы отправить первый отчет вашего приложения:

Чтобы увидеть сбой теста, перейдите в Crashlytics консоли Firebase. приборная доска.

Описание изображения

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

Ресурсы
Диапазон интерфейса командной строки Firebase
Добавьте Firebase в свое приложение
крашлитики
флаттерфайр-не-распознан