6

フレームワークでメソッドをテストしようとしていて、簡単なテスト ケースを作成しました。しかし、実行に失敗し、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")
    }
}

上記の 2 行のコメントを外すと、Framework not found エラーが発生します。

また、私は次の方法を試しました:

  • フレームワークは、組み込みバイナリフレームワーク セクションに追加されます。
  • フレームワークに迅速なコードが含まれているため、埋め込みに迅速なコードが含まYESれています。
  • パッケージング セクションの実行可能プレフィックスが空です。(@executable_path/Frameworksには設定されていません)
  • ランパス リンク時の検索パスを に設定

    $(継承) @executable_path/Frameworks @loader_path/Frameworks

  • また、プロジェクトをクリーンアップして xcode を再起動し、フレームワークをビルドしてみました。

  • 派生データを削除しました。

何が問題なのかわかりません。何か案は?

4

2 に答える 2

1

つまり、V *** ments には、iPhone 5 などの i386 携帯電話用にコンパイルできるバージョンがありません。

次のコマンドを使用してターミナルからコンパイルすると便利でした。

xcodebuild ARCHS = arm64 -scheme <YOUR SCHEME> -workspace <NAME OF WORKSPACE> .xcworkspace / -configuration Debug build
于 2019-03-01T15:11:16.840 に答える