You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter构建iOS IPA:uat环境找不到GoogleService-Info.plist文件

问题原因排查与解决办法

1. 文件版本控制与路径大小写问题

  • CI环境(如GitHub Actions Runner)是大小写敏感的,而Xcode默认不区分。检查复制脚本里的文件路径,比如uat目录名、GoogleService-Info.plist文件名的大小写是否和仓库里的实际文件完全一致,避免因大小写不匹配导致找不到文件。
  • 确认UAT环境的GoogleService-Info.plist已经提交到Git仓库。本地执行git ls-files flavors/ios/Runner/Firebase/uat/GoogleService-Info.plist,如果无输出,说明文件被.gitignore排除或未提交,需要执行git add和git commit将其加入版本控制。

2. 构建脚本的执行时机与逻辑验证

  • 检查脚本在Xcode Build Phases中的执行顺序:必须把复制脚本拖到Compile Sources阶段之前,否则编译代码时文件还未被复制,会触发找不到文件的错误。
  • 验证脚本的Configuration判断逻辑:脚本中是否正确使用${CONFIGURATION}变量匹配UAT环境?比如脚本里是否写了类似if [ "${CONFIGURATION}" = "UAT" ]; then ...的判断?可以在脚本开头添加echo "当前构建Configuration: ${CONFIGURATION}",查看CI日志输出,确认环境识别是否正确。
  • 检查脚本的目标路径:确认脚本是将文件复制到Xcode项目实际引用的位置(比如$(SRCROOT)/Runner/GoogleService-Info.plist),避免目标路径错误导致编译时无法读取。

3. CI环境工作目录与缓存问题

  • 在CI构建步骤中添加目录检查命令:比如pwd && ls -la flavors/ios/Runner/Firebase/uat/,查看CI工作目录下该路径是否存在文件,确认文件是否被正确拉取到runner环境。
  • 清理CI缓存:构建前执行flutter clean或xcodebuild clean,避免旧缓存导致的文件引用异常。

4. Xcode项目配置检查

  • 确认UAT Scheme对应的Configuration是否正确关联了包含复制脚本的Target:在Xcode中编辑UAT Scheme,检查Build阶段是否勾选了对应的Target,确保脚本会在UAT构建时执行。
  • 检查Xcode中GoogleService-Info.plist的引用设置:将文件的Location设置为Relative to Project,避免本地相对路径在CI环境中失效。

内容的提问来源于stack exchange,提问作者stacktrace2234

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:25:40