什么是Xcode的搜索路径设置中的$(继承)?

时间:2013-03-11 16:01:29

标签: xcode

$(inherited)搜索路径设置是什么?

我已经修改了关于OpenSSL for iPad的标题和库搜索路径设置,这个问题以及给定路径的递归选项是主要罪魁祸首。

当我重新安排我的搜索路径以首先查看目录然后进入$(inherited)时,iPad版本正在运行。

5 个答案:

答案 0 :(得分:35)

我也在寻找文档。但我获得了经验,$(inherited)可用于从项目级别继承构建设置到目标级别。在项目级别定义库或标题搜索路径时,可以在目标构建设置中使用$(inherited)在项目目标的搜索路径中使用这些搜索路径。

答案 1 :(得分:29)

如果您转到“目标构建设置”,并切换到“级别视图”

Alt text

您可以从右到左看到inherited的流程

Resolved <- Target <- xcconfig <- Project <- iOS Default

因此,目标中的inherited表示Target继承了xcconfig和Project

的设置

答案 2 :(得分:4)

附录: 当您通过单击目标成员资格右侧窗格向目标库添加库时,将自动填充$(inherited) 构建设置 - &gt;库搜索路径。否则就不会发生这种情况。

答案 3 :(得分:4)

通过在xcconfig文件中重新分配该变量的值,在项目或目标级别设置的覆盖构建设置变量的示例。

// Variable set in the project file, previous level
OTHER_LDFLAGS = -ObjC

// lib.xcconfig
OTHER_LDFLAGS = -framework Security

^使用此编译时,OTHER_LDFLAGS -ObjC的先前值将被新值-framework Security覆盖。

继承构建设置变量的示例,在项目或目标级别上设置,方法是附加到xcconfig文件中该变量的上一个值。将$(inherited)视为一个特殊变量,可用于获取变量的现有值,以便对同一变量的赋值不具有破坏性。

// Variable set in the project file, previous level
OTHER_LDFLAGS = -ObjC

// lib.xcconfig
OTHER_LDFLAGS = $(inherited) -framework Security

^使用此编译时,OTHER_LDFLAGS的值将为-ObjC -framework Security

https://pewpewthespells.com/blog/xcconfig_guide.html

找到的示例

答案 4 :(得分:0)

Xcode $(继承)

[Xcode ${<variable_name>} syntax]

Xcode 变量可以定义在不同的级别(项目、.xcconfig、目标、默认)。当您使用 Build Settings -> Levels 标签时,您可以检查层次结构和已解决结果

$(inherited) 使用来自超级级别的变量值。

请注意以下几点:

  • 当您应该像 $(inherited)-myPrefix 这样连接结果值时,它很有用。用作独立表达式并不是很有用,因为即使您从后继(目标是项目的后继)中删除 $(inherited) 或任何其他值,Xcode 也会根据前任自动更改此值

  • 您可以在项目级别和目标级别设置 .xcconfig,这就是结果层次结构不是恒定的原因

Resolved <- Target <- Target .xcconfig <- Project <- Project .xcconfig <- Default

例如目标 = $(inherited)

.xcconfig 在项目级别 enter image description here

.xcconfig 在目标级别 enter image description here

[.xcconfig]

[CocaPods inherit!]