Xcode中:如何设置多个xcconfig文件调试环境?(Xcode: How to set deb

2019-08-04 15:30发布

我使用的Xcode 3.2 xcconfig文件。 该文件由目标组织。 例如,我有一个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文件。 正如所示这个问题 ,下面的方法应该工作:

GCC_PREPROCESSOR_DEFINITIONS = "$(GCC_PREPROCESSOR_DEFINITIONS) DEBUG"

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

你们将如何解决这个问题?

Answer 1:

我们已经在过去的解决了这一问题的方法是让每个层构成的定义的一个子集,然后在叶级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)

(以使该子集变量冗长的好处是,他们是按字典类似于它们被用来撰写的价值,使他们更容易在配置文件中找到。)



Answer 2:

你也可以使用以下格式在.xcconfig文件。 (在xcode中4作品,而不是在xcode的3测试)。 它只是一个例子,似乎所有的设置工作。

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


Answer 3:

下面应该工作:

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


Answer 4:

如何使用$(继承)?

GCC_PREPROCESSOR_DEFINITIONS = $(继承)DEBUG



文章来源: Xcode: How to set debug environment with multiple xcconfig files?