web-dev-qa-db-ja.com

xcodebuild:シミュレーターまたはデバイス?

シミュレータまたはデバイス用にビルドするかどうかをxcodebuild(コマンドラインツール)に指定するにはどうすればよいですか?

61
Steven Fisher

コマンドラインからのXCodeビルドは次のようになります。

xcodebuild -configuration ${BUILD_TYPE} -target ${TARGET_NAME} -Arch ${CPU_ARCHITECTURE} -sdk ${SIMULATOR_OR_IOS_SDK} 

BUILD_TYPEは、「リリース」または「デバッグ」のようなものです(これらはデフォルトです。他のプロジェクトをプロジェクトに追加した可能性があります)

TARGET_NAMEはビルドするターゲットの名前です(デフォルトではプロジェクトと同じ名前です)

CPU_ARCHITECTUREは、構築するCPUであり、次のいずれかです。

i386armv6armv7

シミュレーターのビルドにはi386を使用し、デバイスのビルドにはarmv6またはarmv7を使用します-他の一部のデバイスはarmv7コードを実行できないため、通常はライブラリをビルドするときにこれらのアーキテクチャをすべてビルドし、lipo

SIMULATOR_OR_IOS_SDKは探しているもので、iphoneosまたはiphonesimulatorのいずれかです。これらの値は、インストールされているXCodeがサポートするSDKの最新バージョンを使用します。サポートされているSDKのリストは、次の方法で取得できます。

xcodebuild -showsdks

次のようなリストを返します:

Mac OS X SDKs:
    Current Mac OS                  -sdk 
    Mac OS X 10.6                   -sdk macosx10.6

iOS SDKs:
    iOS 4.2                         -sdk iphoneos4.2

iOS Simulator SDKs:
    Simulator - iOS 3.2             -sdk iphonesimulator3.2
    Simulator - iOS 4.0             -sdk iphonesimulator4.0
    Simulator - iOS 4.1             -sdk iphonesimulator4.1
    Simulator - iOS 4.2             -sdk iphonesimulator4.2

xcodebuildにはそれ以上のフラグがありますが、これらはXCodeを使用してビルドプロパティを設定した後に一般的に使用するフラグです。すべてを使用する必要はありませんが、構築しているものを明確にすることはおそらく良い考えです。

-xcconfigフラグは非常に便利です。このオプションを使用すると、xcconfig(ビルド設定ファイル)へのパスを指定できます。 xcconfig内では、#includeその他のxcconfigファイル。

1
justin