| Выберите платформу: | iOS+ Android Flutter Unity |
По умолчанию Firebase Crashlytics автоматически инструментирует ваш Flutter-проект для загрузки необходимых файлов символов, которые обеспечивают деобфускацию и удобочитаемость отчетов о сбоях.
К сожалению, в некоторых случаях проект может быть настроен не полностью. В этом руководстве описано, что делает автоматизация, и приведены первые шаги для отладки настроек вашего проекта.
платформы Apple
Проверьте настройки загрузки файлов dSYM.
Добавление плагина Crashlytics Flutter и запуск команды flutterfire configure попытаются добавить скрипт запуска в рабочую область Xcode вашего проекта, который найдет и загрузит необходимые файлы символов dSYM в Crashlytics . Без этих файлов вы увидите предупреждение «Отсутствуют dSYM» на панели управления Crashlytics , и обработка исключений будет приостановлена бэкэндом до тех пор, пока не будут загружены отсутствующие файлы.
Если у вас возникла эта проблема, сначала убедитесь, что у вас установлен скрипт запуска:
Найдите и откройте файл рабочей области Xcode в каталоге iOS вашего проекта (
FLUTTER_PROJECT_NAME /ios/Runner.xcworkspace).Проверьте, добавлен ли скрипт выполнения с названием
[firebase_crashlytics] Crashlytics Upload Symbolsв раздел Build Phases целевого объекта Runner.См. соответствующий раздел ниже, чтобы узнать, существует ли скрипт выполнения или нет .
Если этот скрипт запуска отсутствует , вы можете добавить его вручную:
Найдите идентификатор приложения Firebase для вашего приложения Apple. Вот два разных места, где вы можете найти этот идентификатор:
В консоли Firebase перейдите в свой
> Настройки проекта . Перейдите к карточке «Ваши приложения» , затем щелкните по своему приложению Firebase Apple, чтобы просмотреть информацию о приложении, включая его идентификатор приложения (App ID) . В корневом каталоге вашего проекта Flutter найдите файл
firebase_options.dart. Идентификатор приложения Firebase для вашего приложения Apple обозначен какappId.
Нажмите > «Новый этап выполнения скрипта» .
Убедитесь, что этот новый этап выполнения скрипта является последним этапом сборки вашего проекта. В противном случае Crashlytics не сможет корректно обрабатывать файлы dSYM.
Разверните новый раздел «Выполнить скрипт» .
В поле «Скрипт» (расположенное под заголовком «Оболочка ») добавьте следующие скрипты выполнения.
Эти скрипты обрабатывают ваши файлы dSYM и загружают их в Crashlytics .
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase --validate -ai FIREBASE_APP_ID -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase -ai FIREBASE_APP_ID -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM
- FIREBASE_APP_ID : Ваш идентификатор приложения Firebase в Apple (а не идентификатор пакета Apple).
Пример идентификатора приложения Firebase Apple:1:1234567890:ios:321abc456def7890
Вот два способа найти идентификатор вашего приложения Firebase:
В файле
GoogleService-Info.plistидентификатор вашего приложения — это значениеGOOGLE_APP_ID; илиВ консоли Firebase перейдите в настройки проекта . Перейдите к карточке «Ваши приложения» , затем щелкните нужное приложение Firebase, чтобы найти его идентификатор приложения.
- FIREBASE_APP_ID : Ваш идентификатор приложения Firebase в Apple (а не идентификатор пакета Apple).
В разделе «Входные файлы» укажите пути к следующим файлам:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
If the run script does exist, refer to the Apple-specific guide for troubleshooting dSYM issues . You'll need to take the following additional steps if you choose to upload your dSYM files via the described process:
Найдите идентификатор приложения Firebase для вашего приложения Apple. Вот два разных места, где вы можете найти этот идентификатор:
В консоли Firebase перейдите в свой
> Настройки проекта . Перейдите к карточке «Ваши приложения» , затем щелкните по своему приложению Firebase Apple, чтобы просмотреть информацию о приложении, включая его идентификатор приложения (App ID) . В корневом каталоге вашего проекта Flutter найдите файл
firebase_options.dart. Идентификатор приложения Firebase для вашего приложения Apple обозначен какappId.
При запуске скрипта
upload-symbolsиспользуйтевместо-ai FIREBASE_APPLE_APP_ID-gsp /path/to/GoogleService-Info.plist.
Проверьте конфигурацию версий 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Вот два способа найти идентификатор вашего приложения Firebase:
В файле
google-services.jsonидентификатор вашего приложения — это значениеmobilesdk_app_id; илиВ консоли Firebase перейдите в настройки проекта . Перейдите к карточке «Ваши приложения» , затем щелкните нужное приложение Firebase, чтобы найти его идентификатор приложения.
PATH/TO /symbols: Тот же каталог, который вы указываете в флаге--split-debug-infoпри сборке приложения.
Если проблемы сохраняются, обратитесь к руководству по устранению неполадок с зашифрованными отчетами для Android .