将 objc 动态框架与另一个 objc 动态框架链接会使 swift 单元测试目标失败
Posted
技术标签:
【中文标题】将 objc 动态框架与另一个 objc 动态框架链接会使 swift 单元测试目标失败【英文标题】:Linking objc dynamic framework with another objc dynamic framework makes swift unit test target fail 【发布时间】:2016-06-16 20:38:44 【问题描述】:我正在目标 c 中构建一个动态框架,我一直在使用 Swift 单元测试目标进行单元测试。到目前为止,这一直运行良好。
我现在需要将我正在构建的框架与另一个 obj-c 动态框架链接起来。这也可以正常工作,我可以从我的框架内访问外部框架就好了。
但是,一旦我将动态框架与外部框架链接起来,我的 swift 单元测试目标就会失败,无法在我自己的框架中找到头文件。
有人有这方面的经验吗?
【问题讨论】:
【参考方案1】:经过一番搜索,我设法在 Carthage 上的这个问题中找到了这个问题的答案:
https://github.com/Carthage/Carthage/issues/1002
动态框架目标没有“嵌入框架”构建步骤,因为这是宿主应用程序的责任,以嵌入框架的任何依赖项。这意味着我的框架目标只能链接外部动态框架,但不能嵌入它。这适用于构建框架目标。但是当运行我的单元测试目标并且测试开始运行我的框架代码时,缺少外部动态框架。
对我来说,解决方案是将复制文件构建步骤添加到我的单元测试目标,并将目标设置为“框架”,然后将外部动态框架拖到此处。这确保了外部动态框架存在于测试包中,并且我的单元测试目标再次工作。
【讨论】:
以上是关于将 objc 动态框架与另一个 objc 动态框架链接会使 swift 单元测试目标失败的主要内容,如果未能解决你的问题,请参考以下文章