Xcode:如何使用多个xcconfig文件设置调试环境?
我使用Xcode 3.2和xcconfig
文件。这些文件按目标进行组织。例如,我有一个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文档也明确提到修改变量是不可能的,你只能覆盖它们。
你们会如何解决这个问题?
我们过去解决这个问题的方法是让每个图层组成一个定义的子集,然后将它们放在叶级别的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)
(以使得所述子集的变量冗长的优点是,它们是字典顺序类似于它们被用来组成值,使得它们在配置文件中更容易找到。)
如何使用$(继承)?
GCC_PREPROCESSOR_DEFINITIONS = $(继承)DEBUG
如果它可以工作,它会很好,但不幸的是它不在.xcconfig文件中。 – 2012-08-14 18:10:32
下面应该工作:
xcodebuild GCC_PREPROCESSOR_DEFINITIONS='$(value) BAR=1'
你也可以使用以下格式在.xcconfig文件。 (在xcode 4中工作,未在xcode 3中测试)。它只是一个例子,似乎适用于所有设置。
ARCHS=i386 x86_64
ARCHS[config=Debug]=i386
ARCHS[config=Release]=i386 x86_64
另一种解决办法,如果你不能很容易地在您包括xcconfig编辑变量名,是设置要包括项目的xcconfig你更具体的一个目标。这将使继承工作。有关更多信息,请参阅此Github问题评论:https://github.com/CocoaPods/CocoaPods/issues/1212#issuecomment-52272400 – 2014-08-20 10:57:03