25

xcodebuildを使用するときにプリプロセッサマクロを定義するにはどうすればよいですか?

さまざまな構成を使用してアプリをビルドする必要があります。これを、さまざまなプリプロセッサマクロでxcodebuildを何度も実行するシェルスクリプトを使用して実行したいと思います。

4

2 に答える 2

37

コマンドラインGCC_PREPROCESSOR_DEFINITIONSで渡します。xcodebuild

引数は、シェルのような単語分割と引用符の処理のために再評価されることに注意してください。そのため、特にマクロ値が単純な1s ではない場合 (NSString リテラルなど) は注意が必要です。

また、設定した値の内部を展開することも重要ですGCC_PREPROCESSOR_DEFINITIONS(単一引用符で囲まれているため、スクリプトでは展開されませんが、ビルドのシェルによって展開されます)。そうしないと、このプロパティに対するプロジェクトのビルド設定が失われます。

次のコードは、定義を適切な bash 配列に配置し、xcodebuildコマンド ラインで配列を展開して、シェルの要素が適切にエスケープされるようにします。

defines=( TESTING=1 'IWISH_HOST=@"http://192.168.0.101:8080"' )

xcodebuild -verbose -scheme "MyAppScheme" \
    GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS '"$(printf '%q ' "${defines[@]}")"
于 2012-11-25T20:26:13.100 に答える
18

プロジェクトでCmd+Iを実行して、[情報]ダイアログを開きます。次に、[ビルド]タブで、[プリプロセッサマクロ]設定を見つけます。そこにマクロを追加します。

...設定名は、を見つけることができるので、GCC_PREPROCESSOR_DEFINITIONS追加することができます

GCC_PREPROCESSOR_DEFINITIONS="foo=bar"

xcodebuild引数に。

于 2010-04-25T13:42:29.740 に答える