Получайте понятные отчеты о сбоях на панели управления 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 ), потребуются дополнительные шаги для отображения читаемых трассировок стека для вашего приложения.

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

Android

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

Команда 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 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 .