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


По умолчанию 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 в этапы сборки целевого объекта Runner.

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

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

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

Убедитесь, что ваш проект использует конфигурацию рекомендованной версии (Flutter 3.12.0+ и плагин Crashlytics Flutter 3.3.4+), чтобы ваш проект мог автоматически генерировать и загружать символы Flutter (файлы dSYM) в Crashlytics .

Андроид

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

Команда flutterfire configure пытается добавить необходимые зависимости в файлы сборки Gradle вашего проекта. Без этих зависимостей отчеты о сбоях в консоли Firebase могут оказаться запутанными, если обфускация включена.

Убедитесь, что следующие строки присутствуют в 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 (v.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:17104a2ced0c9b9b

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

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