web-dev-qa-db-ja.com

Xcode 7ライブラリ検索パスの警告

これは表示されている警告です:

オプション「-F/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/Developer/Library/Frameworks」のディレクトリが見つかりません

誰でも警告を解決するのに役立ちますか?

117
arwaz shaikh

これは私がこの問題を修正した方法です

Xcode 6.4からXcode 7へのXcodeプロジェクトの移行に加えて、テストターゲットについて(コンパイル後)以下の警告メッセージが表示されます。

directory not found for option '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/Developer/Library/Frameworks'

実際、新しいプロジェクトと古いプロジェクトを比較すると何かが見つかりました...

古いプロジェクトでは、警告はプロジェクトのテスト対象によってのみ生成されていました。 'Search Paths'の下で、'Framework Search Paths'の下に2つの項目が含まれていることがわかりました。

$(SDKROOT)/Developer/Library/Frameworks
$(inherited)

新しいプロジェクトは'Framework Search Paths'を空のままにしました。

古いプロジェクトのエントリを削除してから警告を削除しました。

ノート:

設定を徹底的に比較したことはないので、追加の違いがあるかもしれません。

また、ある日、次の2つの警告メッセージの1つに再遭遇する場合にのみ、それを行う必要があることを忘れないでください:警告がライブラリ検索パスであるオプション'-L/...'に対するものである場合、そこにあるものを削除します。ただし、フレームワーク検索パスであるオプション'-F/...'に対する警告の場合は、そこにあるものを削除してください。

224
King-Wizard

エラーメッセージに基づいて、ビジネスの最初の順序はターゲットの経路をまっすぐにすることであるように思われます。 このStackOverflowの質問 への回答に示されているように、パスを編集できます。どちらがエラーを生成しているのかわからない場合は、すべてのターゲットのパスを必ず確認してください。これは、プロジェクトをXcode 7ベータ版にアップグレードした後、私を少し驚かせました。削除する必要があるテストターゲットのFRAMEWORK_SEARCH_PATHSにパスがありました。そこにあったパスは、警告を受け取ったと報告したパスとまったく同じでした。パスを削除すると削除されました。

19
Dave Ruske

King-Wizard は本質的に正しいため、もう少し詳しく説明します-

Xcode 7は、存在しないパスでテストフレームワークXCtest.frameworkを探しています。 'Search Paths-> Framework Search Paths'で$(SDKROOT)/Developer/Library/Frameworksによって設定されたパスは、有効なパスではない/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/Developer/Library/Frameworksのフレームワークを探しています。 $(SDKROOT)/Developer/Library/Frameworks行を削除してエラーを除去し、テストを実行できます。

「XCTest.framework」への正しいパスは、興味がある人のための/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworksです。

それがお役に立てば幸いです。

16
Eric Murphey

Xcode 9.2でも同じエラーが発生しましたが、手作業を行わずに解決策を示します。

  1. Project Navigatorでプロジェクトをクリックします
  2. ターゲットに移動して、MyProjectNameTestをクリックします
  3. ビルド設定をクリックし、「Framework Search Paths」を検索します
  4. Framework Search Pathsで、パスを削除し、「$(inherited)」を保持します。

enter image description here

次のエラーが発生している方へ:

オプション '-L /…のディレクトリが見つかりません

ライブラリエラーであるため、次の手順を試してください。

  1. プロジェクト(ターゲット)をクリックします
  2. ビルド設定をクリックし、「ライブラリ検索パス」を検索します
  3. [ライブラリ検索パス]で、パスを削除し、「$(継承)」を保持します
1
Jorge Casariego