更新(来自构建日志):
"The bundle “Lib2Tests” couldn’t be loaded because it is damaged or missing necessary resources."
(dlopen_preflight(/Users/abc/Library/Developer/Xcode/DerivedData/Lib2-gaplfrtqethacsgkmjmlivcyuity/Build/Products/Debug-iphonesimulator/Lib2Tests.xctest/Lib2Tests):
Library not loaded: @rpath/Lib1.framework/Lib1
似乎lib2.framework项目只链接了Lib1.framework并且它没有嵌入它,并且没有选项将框架嵌入到另一个可可触摸框架中,这就是为什么最终单元测试失败,因为它无法'找到引用的Lib1.framework。
简单地说,如果FrameworkB依赖于FrameworkA来实现某些功能,那么FrameworkB的UnitTests将停止运行 - 如果FrameworkA链接到FrameworkB
设置
我创建了一个简单的孤立案例来演示和重现问题。
我有2个Swift可可触控框架(Lib1
& Lib2
- Lib2
依赖Lib1
- 单个swift文件,每个单元测试一次)< / p>
Lib2
单元测试仅在您删除链接的Lib1
时才有效。有趣的是,如果独立运行,两个项目都可以自行运行。
问题:这是Xcode中的一个错误吗?任何解决方法?
最小的可重复示例项目:https://www.dropbox.com/s/kycnvt1qvz8zw4o/LibTest.zip?dl=0
我正在附加屏幕截图,很奇怪,没有错误消息或控制台中的故障详细信息,我得到的是单元测试失败的通知。测试并不复杂,单行实例化一个类,如果我删除了自定义框架的链接,它就会成功运行。 (自定义框架本身也很简单,并且可以自行运行/测试)要观察此行为,只需从项目文件中删除链接的框架,然后再次运行“测试”。我相信错误与项目文件设置等有关,解决方案需要查看项目文件本身。