2009-09-09 30 views
15

私はxcconfigファイルでXcode 3.2を使用しています。ファイルはターゲットごとに編成されています。たとえば、私はdebug.xcconfigファイルとrelease.xcconfigファイルを持っています。両方とも共通の設定を使用していますので、私はshared.xcconfigファイルを追加しました。これは両方のファイルに含まれています。Xcode:複数のxcconfigファイルでデバッグ環境を設定するには?

shared.xcconfigファイルには、次のようになります。

GCC_C_LANGUAGE_STANDARD = c99 
GCC_WARN_ABOUT_RETURN_TYPE = YES 
GCC_WARN_UNUSED_VARIABLE = YES 
GCC_PREPROCESSOR_DEFINITIONS = SOME_COMMON_DEFINITIONS 

debug.xcconfigファイルは次のようになります。

#include "Shared.xcconfig" 
GCC_OPTIMIZATION_LEVEL = 0 

を今、私はdebug.xcconfigファイルにDEBUGプリプロセッサ定義を追加したいと思います。 this questionに示すように、以下の方法が動作するようになっている:

GCC_PREPROCESSOR_DEFINITIONS = "$(GCC_PREPROCESSOR_DEFINITIONS) DEBUG" 

これはXcodeの3.2で動作しません。 Xcodeのドキュメントでは、変数の変更が不可能であることを明示的に述べています。上書きすることしかできません。

どうやってこの問題を解決しますか?

答えて

17

私たちが過去にこれに取り組んだのは、各レイヤーに定義のサブセットを作成させ、それらをすべてリーフレベルのxcconfigにまとめておくことです。 shared.xcconfig

debug.xcconfig

GCC_PREPROCESSOR_DEFINITIONS_SHARED = qFoo qBar qBaz 

GCC_PREPROCESSOR_DEFINITIONS_DEBUG = qDebug 
GCC_PREPROCESSOR_DEFINITIONS = $(GCC_PREPROCESSOR_DEFINITIONS_SHARED) $(GCC_PREPROCESSOR_DEFINITIONS_DEBUG) 

(冗長サブセット変数を作成する利点は、それらを作る、それらはそれらが構成するために使用される値に辞書に類似していることですconfigファイルで見つけやすくなります。)

+0

さらに、xcconfigに含める変数名を簡単に編集できない場合は、プロジェクトに含めるxcconfigと、より具体的なものを設定することもできます。これによって継承が行われます。詳細については、このGithubの問題のコメントを参照してください:https://github.com/CocoaPods/CocoaPods/issues/1212#issuecomment-52272400 –

-1

$(継承)はどうですか?

GCC_PREPROCESSOR_DEFINITIONS = $(継承)DEBUG

+2

うまくいけばうまくいくでしょうが、残念ながら.xcconfigファイルにはありません。 –

1

動作するはずです後:

xcodebuild GCC_PREPROCESSOR_DEFINITIONS='$(value) BAR=1' 
5

また.xcconfigファイルに次の形式を使用することができます。 (xcode 4で動作し、xcode 3では動作しません)。その唯一の例は、すべての設定で機能するようです。

ARCHS=i386 x86_64 
ARCHS[config=Debug]=i386 
ARCHS[config=Release]=i386 x86_64 
関連する問題