xcodebuild を使用してコマンド ライン ビルドを実行し、運がないときに #define マクロを設定しようとしています。
私は試してみましたが-DMYMACRO=1
、MYMACRO=1
他に考えられるすべてのことを試しましたが、何も機能しません。
コマンド ラインから #define を設定するにはどうすればよいですか?
xcodebuild を使用してコマンド ライン ビルドを実行し、運がないときに #define マクロを設定しようとしています。
私は試してみましたが-DMYMACRO=1
、MYMACRO=1
他に考えられるすべてのことを試しましたが、何も機能しません。
コマンド ラインから #define を設定するにはどうすればよいですか?
ロジャー、
あなたが探しているのは、コマンドライン ツール xcodebuild を介して GCC_PREPROCESSOR_MACROS を設定する方法です。xcodebuild の man ページには、これらの設定を適用するための形式が示されていますが、SYNOPSIS セクションでは、これを「setting=value ...」としか言及していません。
xcodebuild [-project projectname] -scheme schemename [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...] [-userdefault=value ...] xcodebuild -workspace workspacename -scheme schemename [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...] [-userdefault=value ...]
最終的に、この形式を使用し、変更したい実際のビルド設定名を知ることで、ビルド設定値をコマンド ラインで直接設定することができます。当然、これは疑問を引き起こします...
ビルド設定名を見つけるにはどうすればよいですか?
よろしくお願いします!Xcode 4 のサイドバーは、実際のコマンドライン ビルド設定名を見つけるのに最も簡単な場所です。
ビルド設定名を探すときは、Xcode 4 のユーティリティ サイドバーのクイック ヘルプ インスペクターを参照してください。
または、Option+Command+2 を使用して、クイック ヘルプ インスペクターを直接表示します。
最後に、ビルド設定を見つける準備ができました:
最初に尋ねたプリプロセッサ マクロ設定の場合、その設定は次のとおりです。
GCC_PREPROCESSOR_DEFINITIONS
これを元の質問に戻すと、残りの xcodebuild コマンドとともに SETTING_NAME='DESIRED_VALUE' を指定するだけで、コマンドラインでこのビルド設定を設定できます。'TestApp' という名前の簡単なテスト プロジェクトの場合、プリプロセッサ マクロ 'BKM' を値 1 に設定する必要がありました。私の xcodebuild コマンドは次のようになります。
xcodebuild -project TestApp.xcodeproj -scheme TestApp GCC_PREPROCESSOR_DEFINITIONS='${inherited} BKM=1'
なぜそこに ${inherited} を入れたのですか?
プリプロセッサ マクロを使用している場合は、複数のマクロを使用している可能性があります。コマンド ラインからは変更したくないが、ターゲットまたはプロジェクトのビルド設定にコード化されているものもあります。「${inherited}」を使用すると、xcodebuild コマンドで定義したものだけを使用するのではなく、より高いレベルで定義されたビルド設定も使用するよう xcodebuild に指示されます。ほとんどの場合、 ${inherited} を使用して、セットアップした他の構成値を取得する必要があります。
値をアポストロフィで囲む必要がありますか?
複数の値を設定する場合は、値をアポストロフィで囲む必要があります。それ以外の場合、コマンド ラインから 2 つ以上のプリプロセッサ マクロを設定すると、2 つ目以降のマクロがプリプロセッサ マクロではなくビルド設定として解釈されます。 ...まったく正しい動作ではありません。アポストロフィは、設定の複数の値をまとめて収集する方法として機能します。サンプルの xcodebuild コマンドの場合、xcodebuild で継承された一連のプリプロセッサ マクロを特定の BKM 設定と共に使用するようにしたかったので、値をアポストロフィで囲み、xcodebuild に両方をプリプロセッサ マクロとして扱うように指示しました。
これはワークスペースでも機能しますか?
絶対!-project パラメーターの代わりに -workspace パラメーターを使用するようにコマンドを変更するだけで、ビジネスを開始できます。