Xcode Cloud构建Flutter项目报错找不到Generated.xcconfig
问题根因
这个报错不是Pod依赖未安装导致。Generated.xcconfig是Flutter执行pub get或构建命令时自动生成的动态配置文件,默认被加入.gitignore规则,不会提交到代码仓库。你本地构建无异常是因为本地开发时已经执行过Flutter相关命令,文件已经生成;但Xcode Cloud默认只有原生Xcode构建流程,拉取仓库代码后不会自动执行Flutter的预构建步骤,自然找不到这个缺失的文件。
修复步骤
Flutter项目接入Xcode Cloud必须补充Flutter环境初始化的自定义构建步骤,具体操作如下:
- 在iOS工程目录下新建
ci_scripts文件夹,创建名为ci_post_clone.sh的脚本文件,该脚本会在Xcode Cloud拉取完代码、正式启动构建前自动运行 - 本地终端进入项目根目录,执行
chmod +x ios/ci_scripts/ci_post_clone.sh给脚本添加可执行权限 - 编辑脚本内容,写入Flutter环境配置、预构建、依赖安装逻辑,参考如下:
#!/bin/sh # 跳转到仓库根目录 cd ../../ # 配置Flutter环境,保证云端使用的Flutter版本和本地开发版本完全一致 # 如果Xcode Cloud环境没有预置对应版本Flutter,可在此处添加拉取对应版本SDK的逻辑 export PATH="$PATH:Flutter SDK的存放路径" # 执行Flutter预构建,自动生成Generated.xcconfig等必要配置文件 flutter precache --ios flutter pub get # 进入iOS目录安装Pod依赖 cd ios pod install
- 把
ci_scripts文件夹提交到代码仓库,重新触发Xcode Cloud构建即可
注意:不要直接把本地生成的
Generated.xcconfig提交到仓库来绕过问题,这个文件包含本地路径、动态构建参数等和当前设备绑定的内容,提交后会引发其他环境的构建异常。
内容的提问来源于stack exchange,提问作者Enqvida
相关产品推荐
相关产品推荐

