【发布时间】:2015-12-26 18:58:38
【问题描述】:
从我的项目开始,我就使用了一个自定义框架,我们称之为“custom.framework”。但是这个框架有一个错误,现在我想使用另一个版本的“custom.framework”。
起初,我只是从我的项目中删除了“custom.framework”文件并添加了新文件。但是什么都没有改变,错误仍然存在。
经过多次尝试和数小时后,我了解到 Xcode 在内存中添加了旧版本并使用了这个而不是新版本。我知道,因为在新版本中我添加了一个方法,当我 cmd+单击我添加方法的类时,它不存在并且文件路径不可用。
通过网络搜索,我尝试将一些版本参数更改为我的框架项目:兼容版本、当前库版本、框架版本。但这并没有改变继续使用旧版本的 Xcode。
我还尝试将框架的项目作为子项目,并将生成的框架作为依赖项添加到我的目标。它运行良好,但由于框架的项目位于单独的远程 git 存储库中,我认为这不是一个可接受的解决方案。
所以我最后一次尝试是构建一个“custom2.framework”,强制 Xcode 使用真实文件而不是一些缓存版本。但同样,它不起作用,并且在构建时出现错误,告诉我我在 custom2.framework 中的所有类都是其缓存版本“custom.framework”的重复符号。
所以我的问题很简单:我怎样才能最终告诉 Xcode 删除其缓存的旧版本并让我使用我给他的文件?我已经尝试删除我的项目的derivedData,但似乎缓存的框架不存在......我很绝望:(
编辑:这里有 2 个截图来说明问题
第一个屏幕截图是我从项目导航器中的 .framework 对象打开文件时 Xcode 显示的路径。
第二张截图是当我打开文件时 Xcode 显示的路径,从 cmd+click 到代码中的“DCEquipmentManager”。
如您所见,与代码链接的框架并不是项目中的框架。
【问题讨论】:
-
点击产品,按 alt 按钮。点击“清理构建文件夹”。
-
它不会改变任何东西。
-
我认为您需要确保您的新版本设置了版本控制,以便替换原始版本。见stackoverflow.com/questions/6615494/…
-
您是否尝试过在清理产品之前进入项目->派生数据并删除派生数据?
-
@RoryMcKinnel 这就是我所做的。旧框架的 Compatibility 版本和 Curent Library 版本设置为 1,Framework 版本设置为 A。新框架为 3 和 B。
标签: ios objective-c xcode caching frameworks