2013-08-07 3 views
5

私は現在、iOSのテストを自動化するためにxcodebuildを使用しています。xcodebuildによるコンパイラフラグの受け渡し

今、コンパイラフラグをXcodeから直接コンパイラに渡そうとしています。これらのフラグは-fprofile-arcs -ftest-coverageです。

私はxcodeprojを変更する自由がないので、xcodebuildコマンドでこれらのフラグを注入したいのです。それはのようなものになるだろう

xcodebuild -project path/to/my.xcodeproj -scheme MyApp -fprofile-arcs -ftest-coverage 

は、その実現可能ですか?どうやって?

+1

が – borrrden

+0

OTHER_CFLAGS引数はすでに悲しげ:(xcodeprojの設定に使用されているOTHER_CFLAGS引数を使用してそれらを設定してみてくださいしかし、私は解決策は、下記をご覧:)ました。 – aspyct

答えて

5

明らかに、ほとんどのコンパイラフラグは定数として表現でき、これらは簡単にxcodebuild経由でコンパイラに渡すことができます。

xcodeのビルド設定ビューでオプションを選択し、command-C(コピー)を押してください。私の場合、彼らはGCC_GENERATE_TEST_COVERAGE_FILESGCC_INSTRUMENT_PROGRAM_FLOW_ARCSでした。

私のコマンドは、おおよそ次のようになります。

xcodebuild GCC_GENERATE_TEST_COVERAGE_FILES=YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES ... 
+2

この答えは混乱の原因となることがありますのでご注意ください。実際にコンパイラフラグを渡すわけではなく、Xcode環境フラグの値をオーバーライドするだけで対応するコンパイラフラグを設定します。カスタムコンパイラフラグを設定したい場合は、OTHER_CFLAGSのenv varをオーバーライドする必要があります。 –

2

はい、コンパイラの設定のすべてが実際に文字列のキーと値のペアに沸きます。私はあなたが設定したい、これらの設定に同じように適用され、コマンドラインからプリプロセッサマクロを設定することについて非常に類似した質問答え:

Setting a #define from the command line in xcode 4.6

を私はまた、$ {の使用に注意を喚起したいと思います継承された} - この値を使用すると、Xcodeプロジェクトで指定された値を使用して自分自身を追加できます。あなたがコピー&ペーストを経由して位置するものを含めてビルド設定のそれぞれのドキュメントはここで見つけることができます:あなたはそれが仕事を得ることができました

http://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

グラッド - 今、あなたは本当にxcodebuildをさらに行うことができますターゲットXcodeプロジェクトの変更を必要とせずにあなたのために!

+0

面白い、追加情報ありがとう:) – aspyct

2

コンパイラフラグをxcodebuildに設定するには、OTHERCFLAGSオプションに設定する必要があります。例えば

xcodebuild -project path/to/my.xcodeproj -scheme MyApp \ 
    OTHERCFLAGS="-fprofile-arcs -ftest-coverage" 
関連する問題