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

Xcode项目无法识别自定义Framework的代码变更该如何解决?

问题:修改自定义Framework方法名后Xcode无法识别变更

场景说明

  • 创建两个Xcode项目:
    • Framework项目:仅包含一个公开类和一个公开方法
    • 普通Xcode项目
  • 将Framework拖拽至普通项目,自动添加到目标的General标签及Build Phases的Link Binary With Libraries中,随后在General的Frameworks, Libraries, and Embedded Content设置为Embed & Sign
  • 在ViewController中导入并调用方法,运行正常:
    import MyCustom_Framework
    
    let customClass = MyCustom_Class()
      
    override func viewDidLoad() {
        super.viewDidLoad()
         
        customClass.someMethod(text: "Something") // 原方法名
    }
    
  • 修改Framework中方法名从someMethod改为anotherMethod后,Xcode无法识别该变更,尝试删除Derived Data、清理重构Framework、移除重新添加Framework均无效

解决步骤

  1. 确认Framework构建产物已更新
    • 打开Framework项目,确保anotherMethod已标记为public,执行Cmd + Shift + B重新构建。通过Build Settings -> Build Locations -> Per-configuration Build Products Path找到产物路径,确认文件修改时间为最新。
  2. 手动替换主项目中的Framework
    • 删除主项目内引用的旧Framework文件,从Framework项目的构建产物目录中拖拽最新的Framework到主项目,重新设置Embed & Sign。
  3. 检查主项目的Framework搜索路径
    • 打开主项目Build Settings,搜索Framework Search Paths,确认路径指向Framework的最新构建产物目录,而非旧缓存路径。
  4. 深度清理主项目缓存
    • 执行Cmd + Shift + K清理主项目,关闭Xcode后删除主项目的Derived Data(路径可在Xcode -> Preferences -> Locations -> Derived Data查看),重新打开项目构建。
  5. 清除模块缓存
    • 前往~/Library/Developer/Xcode/DerivedData/ModuleCache.noindex目录,删除所有与MyCustom_Framework相关的缓存文件,重启Xcode后重新构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 09:52:30