iPhoneアプリを作成するターゲットがあります。アプリを構築する過程で、依存関係として設定されたi386(OS X)コマンドラインターゲットを構築します。これはXCodeを介して問題なく機能しますが、コマンドラインから-archまたは-sdkを指定しようとすると、ビルドが失敗してエラーが発生します。
xcodebuild -sdk iphoneos
target specifies product type 'com.apple.product-type.tool', but there's no such product type for the 'iphoneos' platform
これは驚くべきことではありません。xcodebuildは、依存するプロジェクトに-sdkコマンドと-archコマンドを伝播し、iOS用のコマンドラインツールをビルドするようにしますが、すぐに失敗します。私が欲しいのは、OSXの依存プロジェクトを構築することです。
明確にするために、ビルドの順序は次のとおりです。
- iPhoneアプリの構築を開始
- Xcodeは満たされていない依存関係、.plistファイルを検出します
- Xcodeは、サブプロジェクトを介してOSXバイナリをビルドすることを含む依存関係を満たすためにコードを実行します
- Xcodeは、plistファイルを生成するビルドされたOSXバイナリを実行します
- XcodeはiPhoneアプリの構築を続けています
依存関係ではなくプライマリターゲットのSDKを指定するにはどうすればよいですか?