Xcode的“:configuration”条件编译指令如何在xcconfig文件中工作?

小狗

复制目标的构建设置并将其以纯文本格式粘贴到xcconfig文件中时,将找到按每个构建配置的条件划分的输出,例如:

//:configuration = Debug
SETTING = value
SETTING = value
SETTING = value

//:configuration = Release
SETTING = value
SETTING = value
SETTING = value

//:completeSettings = some
SETTING
SETTING
SETTING

有关如何使用“:configuration”指令的一些问题:

  1. 如果我在同一个文件中的所有设置之上指定一个设置,它将适用于所有构建配置吗?

  2. 我认为它们适用于它们下面的设置,但是它们适用于空行之后的设置吗?

安东尼奥·纽恩斯

简短答案

注释既不是条件,也不是指令。它们只是注释,用于阐明后面条目适用于什么构建配置复制目标的完整构建设置时,结果文本并不表示将在单个xcconfig文件中使用。相反,它可以用于提取不同配置文件所需的元素。注释使查找特定构建配置所需的设置变得容易。

因此,如果将xcconfig文件分配给目标的Debug构建配置,则可以将其下的设置复制//:configuration = Debug到该文件,然后根据需要在该文件中进行任何更改。

长答案

您可以为每个目标的每个构建配置恰好分配一个xcconfig文件。

(您可以在项目的信息编辑器中的Configurations执行此操作,在其中可以找到配置列表,可以在其中扩展每个配置以显示包含项目及其目标的列表。您可以为每个配置分配一个配置文件通过从配置文件列表中选择这些文件。列出的配置文件包括您添加到项目中的所有配置文件。)

在分配的xcconfig文件中列出的设置将用于为其分配到的目标和构建配置组合的构建设置的构建中,并且将反映在Xcode的“构建设置”编辑器中。构建系统使用配置设置的层次结构,该层次结构用于构造最终将应用的设置。

*(您可以在Xcode构建设置编辑器中看到的所有内容都可以在Xcode构建设置编辑器中选择AllLevels来看到。)构建系统以该平台的默认设置(例如iOS Default)开始。这些可以通过在项目级别的设置进行更改,然后通过在目标级别的设置进行更改。最终,“构建设置”编辑器列出了“已解决的”设置,以便您可以准确地看到要应用的设置。)*

设置按以下顺序应用,其中每个后续条目将覆盖以前的设置:

Default -> Project Config File -> Project -> Target Config File -> Target.

因此,例如,如果您在分配给用于特定构建配置的项目的配置文件中指定有效架构,则该设置将覆盖默认设置。但是,如果在Xcode的构建设置编辑器中为项目级别的设置指定了另一个值,则该值将覆盖xcconfig文件中指定的值。接下来,如果在xcconfig文件中存在用于该构建配置的目标的条目,则将应用该值,除非该值在构建设置编辑器中被目标级别的该设置的值覆盖。(感到困惑吗?

如我所写,每个目标/构建配置组合只能应用一个xcconfig文件。幸运的是,xcconfig文件可以导入其他xcconfig文件,以便可以将设置组合并到逻辑单元中,然后导入到最终xcconfig文件中,这些文件将分配给目标/构建配置。如果要了解有关xcconfig文件内容的更多信息,请在此处查看:xcconfig文件的非官方指南

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在xcconfig文件中配置完整URL

.quad指令如何在汇编中工作?

如何在iOS中仅选择特定的C文件以使用xCode进行编译

如何在单个Excel工作表中编译多个.txt文件?

如何在Visual Studio 2019中有条件地编译c ++源文件?

go.mod文件中的exclude指令如何工作?

了解@HostBinding如何在toggleClass指令的angular中工作

条件将如何在JOptionPane中工作?

布尔条件如何在javascript中工作?

如何在cython中编译多个文件

如何在Java中编译.java文件?

如何在cuda中编译多个文件?

如何在OCaml中编译多个文件?

矢量图像如何在Xcode(即pdf文件)中工作?

如何在Maven编译中添加“ --add-exports”编译器指令

如何在xcconfig和引号中定义字符串

如何使用make文件在Xcode中编译项目

如何在 XML 文件中插入处理指令?

如何在 Java 中编译 schematron 条件 (XPaths/XSLT 2.0)

如何在csproj中检查条件编译符号

为什么Xcode不使用xcconfig文件中的构建配置设置?

如何在VS 2008编译的64位代码中添加RDRAND指令?

如何在整个编译过程中遵循预处理器指令

如何在自定义指令中从ng-options获取编译后的数组?

如何在单个命令行中编译和运行代码并制作 gnuplot 指令

如何在 V8 引擎中打印已编译的指令?

如何在Xcode中调试“前提条件失败”?

筛选条件如何在Spark DataFrame中工作?

如何在Code :: Blocks中编译“ .s”汇编文件