ld:找不到架构i386的框架

时间:2016-01-11 20:13:59

标签: ios swift xcode7.2 xctestcase

我正在尝试在我的框架中测试一个方法,并且我编写了一个简单的测试用例。但它无法执行,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")
    }
}

当我取消注释以上两行时,我发现找不到框架错误。

我也尝试过以下方法:

  • 该框架已添加到嵌入式二进制文件框架部分。
  • 嵌入式包含快​​速代码设置为YES,因为框架包含快速代码。
  • “打包”部分中的“可执行前缀”为空。 (它未设置为@ executable_path / Frameworks)
  • 链接中的Runpath搜索路径设置为

    $(继承) @ executable_path /框架 @ loader_path /框架

  • 此外,我尝试清理项目并重新启动xcode,然后构建框架。

  • 删除了派生数据。

我不确定可能是什么问题。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这可能是因为未为iOS模拟器或Mac(可能是您已选择iOS设备作为构建目标)编译了框架。

如果您有权访问框架目标的项目文件,请转到console部分,然后在Build Settings下选择Build Active Architecture Only

希望这会有所帮助!

答案 1 :(得分:1)

这意味着V *** ments没有可以为i386手机(如iPhone 5和其他手机)编译的版本。

使用以下命令从终端进行编译对我很有用:

xcodebuild ARCHS = arm64 -scheme <YOUR SCHEME> -workspace <NAME OF WORKSPACE> .xcworkspace / -configuration Debug build