1

プロジェクトにプライベート フレームワークを追加しました。DEVICE | でビルドすると RELEASE すべて正常に動作し、アプリケーションを ldid -S することができ、デバイスで正常に起動します。

ただし、シミュレーターでビルドして移動しようとすると、以下に示すように「そのようなファイルまたはディレクトリはありません」というエラーが表示されます: (エラーも2回発生しますが、これも奇妙です.)

 Line Location HomeProfileViewController.h:10: error:  BluetoothManager/BluetoothManager.h:  No such file or directory

以下は、私が現在持っているプロジェクトとビルドの設定です。誰かが間違いを見つけて教えてくれるかもしれません。それは素晴らしいことです!

プロジェクト設定:

PRIVATE_HEADERS_FOLDER_PATH = "/Developer/SDKs/iPhoneOS.sdk/Versions/iPhoneOS3.0.sdk/include"
PUBLIC_HEADERS_FOLDER_PATH = "/Developer/SDKs/iPhoneOS.sdk/Versions/iPhoneOS3.0.sdk/include"
USER_HEADER_SEARCH_PATHS = "/Developer/SDKs/iPhoneOS.sdk/Versions/iPhoneOS3.0.sdk/include"

OTHER_CFLAGS = "-I/Developer/SDKs/iPhoneOS.sdk/Versions/iPhoneOS3.0.sdk/include-I/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include-I/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/gcc/arm-apple-darwin9/4.0.1/include-F/System/Library/Frameworks-F/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/Frameworks-F/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/PrivateFrameworks-DMAC_OS_X_VERSION_MAX_ALLOWED=1050"

ターゲットビルド設定:

PRIVATE_HEADERS_FOLDER_PATH = "/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/PrivateFrameworks"
FRAMEWORK_SEARCH_PATHS = "$(inherited) $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks"
USER_HEADER_SEARCH_PATHS = "/Developer/SDKs/iPhoneOS.sdk/Versions/iPhoneOS3.0.sdk/include/**"

OTHER_CFLAGS = "-I/Developer/SDKs/iPhoneOS.sdk/Versions/iPhoneOS3.0.sdk/include-I/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include-I/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/gcc/arm-apple-darwin9/4.0.1/include-F/System/Library/Frameworks-F/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/Frameworks-F/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/PrivateFrameworks-DMAC_OS_X_VERSION_MAX_ALLOWED=1050"

注: パス内の引用符は、実際には私のプロジェクトにはありません。サイトの構文が改善されるように入れています。

シディア

4

1 に答える 1

2

実際には、SDK 3.0+ の場合、次の例のようにバイナリとヘッダーが PrivateFrameworks フォルダーにあることを確認してください: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/PrivateFrameworks/BluetoothManager.フレームワーク

バイナリとヘッダー ファイルはこのディレクトリの下にある必要があり、ヘッダーは /Headers の下にある必要があります。たとえば、次のようになります 。 /BluetoothManager.h

次に、プライベート ヘッダーが必要な場所で次のステートメントを使用します。

#if TARGET_IPHONE_SIMULATOR
    //This is where you put code for simulator
#else
    //Private functions will go here!       
#endif

これで、上記の最初のディレクトリからプライベート フレームワークを追加できるようになり、ビルドしてシミュレーターに進み、デバイス用にビルドすることができます。デバイス/シミュレーターを切り替えるときに、フレームワークを追加/削除する必要はありません!

于 2009-11-20T00:14:34.537 に答える