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

Mar*_*ote 15 xcode xcconfig

我正在使用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
Run Code Online (Sandbox Code Playgroud)

debug.xcconfig文件如下所示:

#include "Shared.xcconfig"
GCC_OPTIMIZATION_LEVEL = 0
Run Code Online (Sandbox Code Playgroud)

现在,我想DEBUGdebug.xcconfig文件中添加预处理器定义.如此问题所示,以下方法应该起作用:

GCC_PREPROCESSOR_DEFINITIONS = "$(GCC_PREPROCESSOR_DEFINITIONS) DEBUG"
Run Code Online (Sandbox Code Playgroud)

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

你们怎么解决这个问题?

fbr*_*eto 19

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

shared.xcconfig:

GCC_PREPROCESSOR_DEFINITIONS_SHARED = qFoo qBar qBaz
Run Code Online (Sandbox Code Playgroud)

debug.xcconfig:

GCC_PREPROCESSOR_DEFINITIONS_DEBUG = qDebug
GCC_PREPROCESSOR_DEFINITIONS = $(GCC_PREPROCESSOR_DEFINITIONS_SHARED) $(GCC_PREPROCESSOR_DEFINITIONS_DEBUG)
Run Code Online (Sandbox Code Playgroud)

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


jan*_*oen 5

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

ARCHS=i386 x86_64
ARCHS[config=Debug]=i386
ARCHS[config=Release]=i386 x86_64
Run Code Online (Sandbox Code Playgroud)