web-dev-qa-db-ja.com

Xcode 5.0.2 dyld:ライブラリがロードされていません:@ rpath / XCTest.framework / Versions / A / XCTest

Xcode 5.0.2でプロジェクトの実行に問題があります

次のエラーが表示されます。

dyld: Library not loaded: @rpath/XCTest.framework/Versions/A/XCTest
  Referenced from: /Users/chris/Library/Developer/Xcode/DerivedData/relatio-cwlmozvklaldmictbbjthzuoxnxz/Build/Products/Debug/relatio.app/Contents/MacOS/relatio

理由:画像が見つかりません(lldb)

この問題を解決するにはどうすればよいですか?

33
user637338

メインターゲットがテストターゲットと同様にXCTest.frameworkにリンクしているようです。メインターゲットのみにリンクする必要があります。

1)プロジェクト設定に移動

2)アプリのメインターゲットに移動->他のリンカーフラグ

3) '-framework XCTest'を削除します

4)テストターゲットの「その他のリンカーフラグ」フィールドに「-framework XCTest」が含まれていることを確認してください

25
Robert Wagstaff

ターゲットの1つをテストターゲットに変更すると、このエラーが発生しました。他の回答を読んだ後、ビルドフェーズ>ソースのコンパイルコンパイルソースとしてテストクラスを含むであり、XCTestフレームワークをインポートしようとした非テストターゲットに気付きました。

私の場合、通常のターゲットのコンパイルソースからテストクラスを削除することでこれを解決しました。

17
JoePasq

ここでの問題は、投稿したdyldエラーメッセージによると、applicationがXCTest.frameworkにリンクしていることです。それは間違っています。テストバンドルのみにテストが含まれているため、テストバンドルのみがXCTest.frameworkに対してリンクする必要があります。

7
Chris Hanson

OCMockライブラリで同様の問題が発生しましたが、解決策は次のとおりです。

target :"Application Tests", :exclusive => true do
    pod 'OCMock'
end
6
Leszek Zarna

これは私が問題を解決した方法です:

  1. プロジェクトの「ビルド設定」に移動します
  2. 「Runpath Search Paths」を検索します
  3. 製品名の下の列に次のパスを入力します。/Applications/Xcode.app/Contents/Developer/Library/Frameworks/
4
user637338

この方法でこの問題を解決しました。 「ビルド」タブで「実行」にチェックマークを付けてスキームを編集しました。

enter image description here

2
Hot'n'Young

私のメインのターゲットの「ライブラリとバイナリをリンク」(ビルドフェーズの下)で、問題を引き起こしていたのは私が使用していたテストフレームワーク(Nimble.framework)でした。それを削除し、すべてが大丈夫です!

2
Rogare

フレームワーク検索パスでフレームワークの参照を入力し、「ビルド設定」の下でパス検索パスを実行します

1
Ashok Natarajan

同じ問題を思いついた人だけのために:

がそのように見える

Should be

そして、はそのように見える必要はありません

Shouldn't be

0
Eironeia

このケースでは、アプリのターゲットとテストのターゲットの両方にMockingjayを使用します

target 'MyProject' do
  pod 'Mockingjay/Core'
  # all pods that are not test go here

  target 'MyProjectTest' do
      inherit! :search_paths
      pod 'Mockingjay/XCTest'
      pod 'Quick', ' ~> 0.9.2'
      # .. all test pods go here
  end
end
0
Ted

私が同じ問題を抱えているのは、新しいファイルをフレームワークに追加するからです。したがって、単に「pod install "は私の問題を解決しました。しかし、ポッドもTestsターゲットの下にあることを確認してください。

0
William Hu

私のために働いた解決策は、Podfileのテストターゲットの inherit属性:search_pathsから:completeに変更することでした。 この答え は、:search_pathsがテスト環境用に設計されていることを示しています。

target 'myapp' do    
  use_frameworks!

  target 'myappTests' do
    #inherit! :search_paths
    inherit! :complete
  end

end
0
Rem-D