dyld: 库未加载:@rpath/XCTest.framework/XCTest

4
当我尝试使用cocoa pods集成库到我的项目中时,出现以下异常:
dyld: Library not loaded: @rpath/XCTest.framework/XCTest Referenced from: /Users/shoaibahmedqureshi/Library/Developer/CoreSimulator/Devices/CBC381BC-854F-41D6-8D4C-90C2850459AD/data/Containers/Bundle/Application/095CDEFA-A79A-4235-B046-68277D5C14EB/EasyGridExample.app/EasyGridExample Reason: image not found
我自己创建了这个开源库,如果问题出在其中,我可以随时进行修改和建议。
项目的Github链接:https://github.com/shoaibahmedqureshi/EasyGridsExample 库的Github链接:https://github.com/shoaibahmedqureshi/EasyGrids
6个回答

9
请将您的XCTest框架在目标链接框架和库下设置为可选,然后尝试。如需帮助,请参考以下屏幕截图:enter image description here

卡了好几天,这个解决了我的问题,谢谢 @rizwan! - Gregg
我很高兴它有所帮助。 - Rizwan Mehboob
这个改名了吗?我正在使用 XCode 12.3,但在“Target -> General”下找不到名为“Linked Frameworks and Libraries”的字段。我看到的是“Frameworks, Libraries, and Embedded Content”。 - cgold
对我有效的方法是进入“Build Phases -> Link Binary with Libraries”,并将XCTest设置为可选。 - cgold

8

在我的情况下,出现这种情况是因为我错误地将Nimble和Quick的pod添加到了主目标中,而不是单元测试的目标中。所以请仔细检查您的pods,并尝试逐个卸载。


我已将其更改为podspec上的测试部分。 - Ronaldo Albertini
谢谢,这很有帮助。在我的情况下,RxTest 在主目标中,这是错误的。 - Mamad Farrahi

3

我遇到了相同的问题,通过删除Podfile.lock文件并重新安装pod来解决问题。


2

1. 清理并构建 2. 删除DerivedData文件夹

确保您已将库添加到嵌入式二进制文件中


我从未想过解决方案会是那么简单。顺便感谢。 - Shoaib Ahmed

0

如果您在一个非测试目标下,在链接二进制库中包含XCTest.framework,可能会导致此问题。

因此,如果您尝试将依赖于XCTest的框架(例如具有一些测试辅助方法的框架FooTestHelpers.framework)链接到非测试目标上,您应将FooTestHelpers.framework仅包含在链接二进制库部分中的测试目标上,而不是任何普通目标上。

检查错误消息中的Referenced from:行,以确定可能错误地与非测试目标链接的有问题的框架。


0

我也曾经遇到过类似的情况,当我不小心将 @testable import MyModule 复制粘贴到测试方案之外的文件中时。将其替换为预期的 import MyModule 即可解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接