Xcode在许多地方包括Info.plists
提供使用$(BUILD_SETTING_NAME)
或者 ${BUILD_SETTING_NAME}
语法更改build settings
值的能力,其他build setting
值,和.xcconfig
文件。这些替换还能以各种方式添加运算转换这些值,你可能在项目模板中包含的.plist中见过其中的一个信息:
1 |
com.company.$(PRODUCT_NAME:rfc1034identifier) |
build setting
中的PRODUCT_NAME
值被转换成了适应于反向DNS CFBundleIdentifier
所使用的格式。如果PRODUCT_NAME是“Whatever App”产生的字符串是“com.company.Whatever-App”。
这些转换很有用但不被记录,所以这有一个可用操作的列表和他们所做的事的列表:
操作符 | 返回 |
---|---|
identifier | 适合在源代码中使用的C 标识符表示形式。 |
c99extidentifier | 类似 identifier, 但支持C99允许的扩展字符。在Xcode 6中添加。 |
rfc1034identifier |
适合在 DNS 名称中使用的表示形式。
|
quote | 适合用于作为shell参数的表示形式。 |
lower |
小写的表示形式。
|
upper |
大写的表示形式。
|
standardizepath | 当于在字符串上调用 stringByStandardizingPath |
base | 一个路径的基名称 - 删除任何扩展名的最后一个路径组件 |
dir | 目录路径的一部分。 |
file | 文件路径的一部分。 |
suffix |
扩展的路径包括 '.' 分隔符。
|
注意,这些操作符可以混合链接使用,所以你可以这样做
$(PRODUCT_NAME:lower:rfc1034identifier) 或者 $(CONFIGURATION:upper:identifier).
最后,这的确是一个被忽略的知识点!
原文 http://codeworkshop.net/posts/xcode-build-setting-transformations