Мое приложение Flutter имеет три варианта: разработка, промежуточное исполнение и производство. Они создаются с помощью Very_good_cli.
В моей консоли во время процесса сборки с использованием Xcode написано следующее:
Running upload-symbols in Build Phase mode
Validating build environment for Crashlytics...
Processing dSYMs...
Already uploaded this dSYM, not doing it again
Running upload-symbols in Build Phase mode
Validating build environment for Crashlytics...
Processing dSYMs...
Already uploaded this dSYM, not doing it again
Но я получаю электронное письмо о том, что файлы dSYM отсутствуют:
[img]https://i .sstatic.net/op7dS8A4.png[/img]
Я тестировал на симуляторе iPhone 16 Pro Max iOS 18.0 и iPhone 13 mini iOS 18.0.
Есть идеи?
Я добавил скрипт для копирования GoogleService-Info.plist из папки конфигурации в папку Runner:
environment="development"
if [[ $CONFIGURATION =~ -([^-]*)$ ]]; then
environment=${BASH_REMATCH[1]}
fi
echo $environment
GOOGLESERVICE_INFO_PLIST=GoogleService-Info.plist
GOOGLESERVICE_INFO_FILE=${PROJECT_DIR}/config/${environment}/${GOOGLESERVICE_INFO_PLIST}
echo "Looking for ${GOOGLESERVICE_INFO_PLIST} in ${GOOGLESERVICE_INFO_FILE}"
if [ ! -f $GOOGLESERVICE_INFO_FILE ]
then
echo "No GoogleService-Info.plist found. Please ensure it's in the proper directory."
exit 1
fi
PLIST_DESTINATION=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app
echo "Will copy ${GOOGLESERVICE_INFO_PLIST} to final destination: ${PLIST_DESTINATION}"
cp "${GOOGLESERVICE_INFO_FILE}" "${PLIST_DESTINATION}"
Я инициализировал Firebase с помощью настройки flutterfire.
Это добавляет этот скрипт в мои этапы сборки:

PATH=${PATH}:$FLUTTER_ROOT/bin:$HOME/.pub-cache/bin
flutterfire upload-crashlytics-symbols
--upload-symbols-script-path=$PODS_ROOT/FirebaseCrashlytics/upload-symbols
--platform=ios --apple-project-path=${SRCROOT}
--env-platform-name=${PLATFORM_NAME}
--env-configuration=${CONFIGURATION}
--env-project-dir=${PROJECT_DIR}
--env-built-products-dir=${BUILT_PRODUCTS_DIR}
--env-dwarf-dsym-folder-path=${DWARF_DSYM_FOLDER_PATH}
--env-dwarf-dsym-file-name=${DWARF_DSYM_FILE_NAME}
--env-infoplist-path=${INFOPLIST_PATH}
--target=development
Я изменил последний аргумент --default-config=default на --target=development и изменил свой firebase.json< /strong> на это:
{
"flutter": {
"platforms": {
"android": {
"default": {
"projectId": "123",
"appId": "1:123:android:123",
"fileOutput": "android/app/google-services.json"
}
},
"ios": {
"targets": {
"development": {
"projectId": "123",
"appId": "1:123:ios:123",
"uploadDebugSymbols": true,
"fileOutput": "ios/Runner/GoogleService-Info.plist"
}
}
},
"dart": {
"lib/firebase_options_development.dart": {
"projectId": "123",
"configurations": {
"android": "1:123:android:123",
"ios": "1:123:ios:123"
}
}
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... th-flavors