Я использовал ту же статью Medium для настройки вкусов (prod и dev) на моей локальной машине. Я следовал руководству Codemagi c по настройке переменных среды для файлов службы Google и продолжал сталкиваться с одной и той же ошибкой Could not get GOOGLE_APP_ID
.
Для меня ключевым моментом была репликация моей локальной среды в Codemagi. c настолько близко, насколько это возможно, и используйте сценарий установки Firebase в Xcode во время сборки Codemagi c.
В моем случае это означало воссоздание точно такой же структуры папок и файлов для Runner/Firebase/prod/GoogleService-Info.plist
, чтобы Сценарий установки Firebase на этапах сборки может выполняться без проблем.
Во-первых, я изменил сценарий предварительной сборки в Codemagi c, чтобы обеспечить возможность обнаружения GoogleService-Info.plist
сценарием установки Firebase:
#!/bin/bash
set -e # exit on first failed commandset
rm -rf $FCI_BUILD_DIR/iOS/Runner/GoogleService-Info.plist
mkdir -p “${FCI_BUILD_DIR}/iOS/Runner/Firebase/${FCI_FLUTTER_SCHEME}”
echo $IOS_FIREBASE_SECRET | base64 —decode > $FCI_BUILD_DIR/iOS/Runner/Firebase/prod/GoogleService-Info.plist
Во-вторых, Xcode должен знать об этих файлах. Файл, присутствующий в каталоге, не означает, что он находится на XCode. Добавьте каталог Firebase/
в XCode by File -> Add files to «Runner ..» и обязательно снимите флажок «Копировать, если требуется».
Если вы уже строите локально без каких-либо проблем, вы можете возможность пропустить этот шаг.
Вот как мои папки отображаются в Xcode
Затем запустите сборку на Codemagi c с помощью FCI_FLUTTER_SCHEME=prod
.
Наконец, чтение xcodebuild.log
в Codemagi c build Artifacts может дать вам более подробную информацию.