我正在尝试在我的框架中测试一个方法,并且我编写了一个简单的测试用例。但它无法执行,xcode 给了我错误:
ld: framework not found V***ments for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我仔细检查了框架是否已添加到嵌入式二进制文件以及构建阶段部分。
这是我的测试文件:
import XCTest
@testable import MYClass
class MYClassTests: XCTestCase {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testExample() {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
func testPerformanceExample() {
// This is an example of a performance test case.
self.measureBlock {
// Put the code you want to measure the time of here.
}
}
func testInitalization() {
// tests pass when I comment the following lines.
// let one = MYClass.sharedInstance
// XCTAssertNotNil(one, "Failed to create a MYClass instance")
}
}
当我取消注释上述两行时,我得到了未找到框架的错误。
我也尝试了以下方法:
- 该框架已添加到嵌入式二进制框架部分。
- Embedded contains swift code设置为
YES
,因为框架包含 swift 代码。 - 打包部分中的可执行前缀为空。(它没有设置为@executable_path/Frameworks)
链接中的运行路径搜索路径设置为
$(inherited) @executable_path/Frameworks @loader_path/Frameworks
我也尝试清理项目并重新启动 xcode,并构建框架。
- 删除了派生数据。
我不确定可能是什么问题。有任何想法吗?