Vin*_*jan 2 xcode firebase flutter codemagic
我使用 Flutter 风格(dev 和 prod),我各自的 GoogleServices-Info.plist 文件分别存在于 Firebase/dev Firebase/prod 文件夹中
我使用“构建阶段”脚本在构建时使用以下脚本将文件复制到 Runner/ 目录
if [ "${CONFIGURATION}" == "Debug-prod" ] || [ "${CONFIGURATION}" == "Release-prod" ] || [ "${CONFIGURATION}" == "Release" ]; then
cp -r "${PROJECT_DIR}/Firebase/prod/GoogleService-Info.plist" "${PROJECT_DIR}/Runner/GoogleService-Info.plist"
echo "Production plist copied"
elif [ "${CONFIGURATION}" == "Debug-dev" ] || [ "${CONFIGURATION}" == "Release-dev" ] || [ "${CONFIGURATION}" == "Debug" ]; then
cp -r "${PROJECT_DIR}/Firebase/dev/GoogleService-Info.plist" "${PROJECT_DIR}/Runner/GoogleService-Info.plist"
echo "Development plist copied"
fi
Run Code Online (Sandbox Code Playgroud)
一切正常,直到我尝试将 CI/CD 与 codemagic 一起使用。
(1) 首先我从 codemagic build 得到这个错误(但在本地工作正常)
错误:找不到构建输入文件:>'/Users/builder/clone/ios/Runner/GoogleService-Info.plist'
(2) 然后我从我的 Xcode 目标的“复制捆绑资源”中删除了该文件。现在我得到以下错误(本地和codemagic):
Run Code Online (Sandbox Code Playgroud)error: Could not get GOOGLE_APP_ID in Google Services file from build environment
为了让构建在本地和 codemagic 中都能正常工作,我应该保持什么正确的设置?
更新:经过一番思考,看起来(1)是正确的设置。> GoogleServices-Info.plist 应该是复制包资源的一部分。>此外,Runner/GoogleServices-Info.plist 必须在构建 > 开始之前存在。所以我在目录中放置了一个默认的 plist 文件并且它起作用了。>我的构建阶段脚本将根据风格覆盖这个默认的 plist 文件到 >适当的文件
经过一番思考,看起来(1)是正确的设置。GoogleServices-Info.plist 应该是复制包资源的一部分。
此外,在构建开始之前,Runner/GoogleServices-Info.plist 必须存在。所以我在目录中放置了一个默认的 plist 文件并且它起作用了。我的构建阶段脚本将根据风味将此默认 plist 文件覆盖为 > 适当的文件
| 归档时间: |
|
| 查看次数: |
1720 次 |
| 最近记录: |