Xcode:如何使用多个xcconfig文件设置调试环境?

时间:2009-09-09 23:17:51

标签: xcode xcconfig

我正在使用带有xcconfig文件的Xcode 3.2。文件按目标组织。例如,我有debug.xcconfig个文件和release.xcconfig个文件。两者都使用常用设置,因此我添加了shared.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文件中添加debug.xcconfig预处理器定义。如this question所示,以下方法应该起作用:

GCC_PREPROCESSOR_DEFINITIONS = "$(GCC_PREPROCESSOR_DEFINITIONS) DEBUG"

这在Xcode 3.2中不起作用。 Xcode文档还明确提到修改变量是不可能的,你只能覆盖它们。

你们怎么解决这个问题?

4 个答案:

答案 0 :(得分:19)

我们过去解决这个问题的方法是让每一层组成一个定义的子集,然后在叶级xcconfig中将它们全部组合在一起。

shared.xcconfig

GCC_PREPROCESSOR_DEFINITIONS_SHARED = qFoo qBar qBaz

debug.xcconfig

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

(使子集变量冗长的优点是它们在词典上与它们用于编写的值类似,使它们更容易在配置文件中找到。)

答案 1 :(得分:5)

您还可以在.xcconfig文件中使用以下格式。 (适用于xcode 4,未在xcode 3中测试)。它只是一个例子,似乎适用于所有设置。

ARCHS=i386 x86_64
ARCHS[config=Debug]=i386
ARCHS[config=Release]=i386 x86_64

答案 2 :(得分:2)

以下应该工作:

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

答案 3 :(得分:-2)

如何使用$(继承)?

GCC_PREPROCESSOR_DEFINITIONS = $(继承)DEBUG