Получайте понятные отчеты о сбоях на панели управления Crashlytics (Flutter)

Выберите платформу: iOS+ Android Flutter Unity


По умолчанию Firebase Crashlytics автоматически инструментирует ваш Flutter-проект для загрузки необходимых файлов символов, которые обеспечивают деобфускацию и удобочитаемость отчетов о сбоях.

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

платформы Apple

Проверьте настройки загрузки файлов dSYM.

Добавление плагина Crashlytics Flutter и запуск команды flutterfire configure попытаются добавить скрипт запуска в рабочую область Xcode вашего проекта, который найдет и загрузит необходимые файлы символов dSYM в Crashlytics . Без этих файлов вы увидите предупреждение «Отсутствуют dSYM» на панели управления Crashlytics , и обработка исключений будет приостановлена ​​бэкэндом до тех пор, пока не будут загружены отсутствующие файлы.

Если у вас возникла эта проблема, сначала убедитесь, что у вас установлен скрипт запуска:

  1. Найдите и откройте файл рабочей области Xcode в каталоге iOS вашего проекта ( FLUTTER_PROJECT_NAME /ios/Runner.xcworkspace ).

  2. Проверьте, добавлен ли скрипт выполнения с названием [firebase_crashlytics] Crashlytics Upload Symbols в раздел Build Phases целевого объекта Runner.

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

Проверьте конфигурацию версий Flutter и Crashlytics (если используется флаг --split-debug-info ).

Если в вашем Flutter-проекте используется флаг --split-debug-info (и, при необходимости, также флаг --obfuscate ), потребуются дополнительные шаги для отображения читаемых трассировок стека для вашего приложения.

Make sure that your project is using the recommended version configuration (Flutter 3.12.0+ and Crashlytics Flutter plugin 3.3.4+) so that your project can automatically generate and upload Flutter symbols (dSYM files) to Crashlytics .

Android

Проверьте конфигурацию зависимостей.

The flutterfire configure command attempts to add necessary dependencies to your project's Gradle build files. Without these dependencies, crash reports in the Firebase console may end up obfuscated if obfuscation is turned on.

Убедитесь, что следующие строки присутствуют в build.gradle на уровне проекта и в файле build.gradle на уровне приложения:

  • В файле сборки проекта ( android/build.gradle ) найдите следующую строку:

    dependencies {
    // ... other dependencies
    
    classpath 'com.google.gms:google-services:4.3.5'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    }
  • В файле сборки приложения ( android/app/build.gradle ) найдите следующую строку:

    // ... other imports
    
    android {
    // ... your android config
    }
    
    dependencies {
    // ... your dependencies
    }
    
    // This section must appear at the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    apply plugin: 'com.google.firebase.crashlytics'

Убедитесь, что вы используете CLI для загрузки символов Flutter (если используете флаг --split-debug-info ).

Если в вашем Flutter-проекте используется флаг --split-debug-info (и, при необходимости, также флаг --obfuscate ), потребуются дополнительные шаги для отображения читаемых трассировок стека для вашего приложения.

Используйте Firebase CLI (версия 11.9.0 и выше) для загрузки отладочных символов Flutter. Необходимо загрузить отладочные символы перед тем, как сообщать о сбое, возникшем в результате сборки обфусцированного кода.

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

firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
  • FIREBASE_APP_ID : Ваш идентификатор приложения Firebase для Android (а не имя пакета).
    Пример идентификатора Android-приложения Firebase: 1:567383003300:android:17104a2ced0c9b9b

  • PATH/TO /symbols : Тот же каталог, который вы указываете в флаге --split-debug-info при сборке приложения.

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