2017-02-20 19 views
0

在复制目标的构建设置,并将其粘贴到一个xcconfig文件作为纯文本,人们发现输出的条件,每个版本的配置切片关闭,如:Xcode的“:configuration”条件编译指令如何在xcconfig文件中工作?

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

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

//:completeSettings = some 
SETTING 
SETTING 
SETTING 

的一些问题,如何“:配置”使用指令:

  1. 如果我在同一个文件中指定一个高于所有这些设置的设置,它是否适用于所有构建配置?

  2. 我假设它们适用于以下的设置,但它们是否适用于空行之后的设置?

回答

0

简短的回答

的意见既不条件,也没有指示。 它们只是注释,用于阐明构建配置的条目适用于。在复制目标的完整构建设置时,生成的文本不应用于单个xcconfig文件。相反,它可以用来提取不同配置文件所需的元素。这些注释使您可以轻松找到特定生成配置所需的设置。

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

龙回答

可以给每个目标每构建配置只有一个xcconfig文件。

(你在项目的信息编辑器做到这一点,下配置,在那里你会找到的配置,每个配置可以展开,以显示包含的项目及其目标的清单列表。您可以从配置文件列表中选择一个配置文件,列出的配置文件包含您添加到项目中的所有配置文件。)

分配的xcconfig文件中列出的设置是用于构建目标和构建配置组合的构建设置,它被分配到,它们将反映在Xcode的Build Settings编辑器中。构建系统使用配置设置的层次结构来构建最终应用的设置。

*(你可以看到这个反映在Xcode构建设置编辑器在生成设置编辑一切的顶部选择所有水平)构建系统开始了与默认的平台(例如iOS默认)。这些可以通过项目级别的设置进行更改,然后通过目标级别的设置进行更改。编译设置编辑器最后列出了已解决设置,以便您可以确切地看到将应用哪些设置。)*

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

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

所以,如果你指定,也就是说,一个有效的架构在分配给一个配置文件该项目用于某种构建配置,那么该设置将覆盖默认设置。但是,如果在Xcode的构建设置编辑器中为项目级别的该设置指定了另一个值,则该值将覆盖xcconfig文件中指定的值。接下来,如果在xcconfig文件中存在针对该构建配置的目标的条目,那么将会应用该值,除非它被构建设置编辑器中的目标级别的该设置的值覆盖。 (困惑了吗?:-)

正如我写的,每个目标/构建配置组合只能应用一个xcconfig文件。幸运的是,xcconfig文件可以导入其他xcconfig文件,以便设置组可以合并为逻辑单元,然后导入到要分配给目标/构建配置的最终xcconfig文件中。如果你想了解更多关于xcconfig文件的内容,请看这里: The Unofficial Guide to xcconfig files

相关问题