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

升级Sonoma14与Xcode15后Flutter项目CocoaPods构建循环错误求助

修复Xcode 15下Flutter项目Runner Target依赖循环问题

针对你遇到的Cycle inside Runner构建错误,以下是经过验证的修复方案:

核心修复步骤

  • 调整Build Phases顺序
    打开iOS项目的Runner.xcworkspace,选中Runner target进入Build Phases标签:

    1. 找到Thin Binary脚本阶段,将其拖拽到[CP] Embed Pods Frameworks之前
    2. 确认[CP] Copy Pods Resources位于[CP] Embed Pods Frameworks之后,且在Copy Bundle Resources阶段之前
  • 修改Thin Binary脚本的输入输出依赖
    编辑Thin Binary脚本的Input Files和Output Files配置:

    • 输入仅指定主App二进制文件:$(BUILT_PRODUCTS_DIR)/$(EXECUTABLE_PATH)
    • 输出指定瘦身后的二进制路径:$(BUILT_PRODUCTS_DIR)/$(EXECUTABLE_PATH)
      避免让脚本依赖整个Frameworks目录,减少和Embed Pods阶段的交叉依赖
  • 检查Share Extension的依赖配置
    选中Share Extension target,进入Build Phases:

    1. 确保[CP] Embed Pods Frameworks和[CP] Copy Pods Resources仅处理Extension自身的依赖
    2. 删除主App Runner target中可能重复复制Extension资源的配置
  • 更新依赖工具版本

    1. 升级Flutter到适配Xcode 15的稳定版:
      flutter upgrade
      
    2. 清理并重新安装CocoaPods依赖:
      cd ios
      pod deintegrate
      pod repo update
      pod install
      
  • 彻底清理构建缓存

    flutter clean
    rm -rf ~/Library/Developer/Xcode/DerivedData
    

    重启Xcode后重新尝试构建

问题原因

Xcode 15对构建阶段的依赖检测逻辑更加严格,旧版本项目中Thin Binary脚本的执行顺序和模糊的输入输出定义,会导致它与[CP] Embed Pods Frameworks阶段产生循环依赖——前者会修改后者已经处理完成的Frameworks目录,触发Xcode的循环检测机制。同时,Share Extension的资源复制流程也可能加剧这种依赖冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:27:05