如何修复Xcode中"Cycle inside Runner"循环构建不可靠结果错误?
解决Xcode中Runner目标循环依赖问题
针对你遇到的Cycle inside Runner构建错误,试试以下几个具体方案:
1. 检查App Extension的依赖关系
- 打开iOS项目的
ios/Runner.xcworkspace文件 - 在Xcode左侧导航栏找到
ImageNotification.appex这个Extension目标,进入它的Build Phases - 查看Target Dependencies列表,如果里面包含
Runner,直接移除它(Extension不应该依赖主App目标,主App依赖Extension才是正确逻辑)
2. 调整"Thin Binary"脚本的位置
- 回到
Runner主目标的Build Phases - 找到名为
Thin Binary的脚本阶段,将它拖动到Copy Bundle Resources阶段的后面,确保它在ExtractAppIntentsMetadata阶段之前执行
3. 禁用不必要的App Intents元数据提取
如果你的项目没用到Apple的App Intents功能,可以直接关闭这个编译阶段:
- 进入
Runner目标的Build Settings - 搜索
ENABLE_APP_INTENTS_METADATA_EXTRACTION,将其值改为NO
4. 彻底清理构建缓存
- 终端执行
flutter clean清理Flutter项目缓存 - 打开Xcode,点击顶部菜单栏
Xcode -> Settings -> Locations,找到Derived Data,点击右侧箭头打开文件夹,删除当前项目的缓存文件夹 - 终端再执行
flutter pub get,之后重新尝试运行项目
5. 检查Info.plist相关配置
- 确认
Runner目标的Build Settings里,INFOPLIST_FILE的路径指向正确的Info.plist文件(默认是ios/Runner/Info.plist) - 检查是否有自定义脚本在修改
Info.plist,如果有,调整脚本的执行顺序避免循环
内容的提问来源于stack exchange,提问作者melee
相关产品推荐
相关产品推荐

