Xcodeのバージョンをアップグレードしたときにポップアップする問題があります。単体テストを使用していて、SenTestingKit(#import <SenTestingKit/SenTestingKit.h>
)、私はこのエラーを受け取ります:SenTestingKit/SenTestingKit.h: No such file or directory
。
ビルド設定を確認しましたが、次の構成オプションがあります。
== Linking ==
Other Linker Flags: -framework Foundation -framework SenTestingKit -framework UIKit
Prebinding: No
== Search Paths ==
Debug Configutation: "/iphonesimulator4.0/Developer/Library/Frameworks" "/Xcode4/Library/Frameworks"
確認しました/Xcode4/Library/Frameworks
、 そしてその SenTestingKit.framework/
ディレクトリisがあります。
だから私は何が欠けていますか?
XCodeで新しいテストケースを作成するときにも同じ問題が発生しました。ただし、これは、テストケースを作成するときに間違ったターゲットを選択するのが愚かだったためです。
「新規作成...」を使用すると、テストケースが含まれ、テストケースのターゲットではなく、ターゲットアプリケーション設定でコンパイルされていました。 [ビルドフェーズ]タブを確認し、「コンパイルソース」の開示を確認すると、私の特定の問題が明らかになりました。
Xcode 4.3にアップグレードした後、この問題が発生しました。 この投稿 に出会うまで、何も機能しないようでした。私はすでに同じ検索パスを持っていましたが、順序を変更すると問題が解決しました。
したがって、記事から、フレームワーク検索パスに次の2つの値がこの順序で必要です。
$(SDKROOT)/Developer/Library/Frameworks
$(DEVELOPER_LIBRARY_DIR)/Frameworks
Xcodeインストールにスペースがあるため、この問題が発生しました:/Xcode 4.0.2
フレームワーク検索パスに"${DEVELOPER_LIBRARY_DIR}/Frameworks"
(引用符付き)を追加して修正しました。
フレームワーク検索パスの場合、/$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk/Developer/Library/Frameworks
を明示的に追加しました。シミュレータとデバイス用に正しくコンパイルします。
SDKのバージョン全体で機能するように環境変数があると確信しているので、環境変数が見つかったら更新します。
これを一度すべて解決するために、Xcode SDKには3つのSenTestingKitフレームワークがあり、1つはOS X用、1つはiOS用、もう1つはシミュレーター用です。
あなたが彼らに「lipo -info」を走らせたなら、あなたはそれを見たでしょう。
ファットファイル内のアーキテクチャ:/Developer/Library/Frameworks/SenTestingKit.framework/Versions/A/SenTestingKit are:x86_64 i386
ファットファイル内のアーキテクチャ:/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit is architecture:armv7
非脂肪ファイル:/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit is architecture:i386
Xcodeがフレームワーク検索パスをチェックしていることを確認したい場合があります。