Xcode中的构建设置修饰符有哪些?

时间:2011-10-19 15:54:54

标签: xcode xcode-template

我已经看到一些使用的构建设置,如

  

$(PRODUCT_NAME:标识符)

使用:upper也使设置值为大写,但我不知道那些被调用的内容并且找不到任何文档。有没有人知道他们的名字或文件在哪里正确使用它们?

2 个答案:

答案 0 :(得分:8)

文件/Developer/Library/PrivateFrameworks/DevToolsCore.framework/Versions/A/DevToolsCore包含以下内容:

[ 09:22 root@MacBookPro / ]# strings /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Versions/A/DevToolsCore | egrep "(^:|^[a-z0-9]+$)"
:children.count=%lu
:name='%@'
:File='%@':Line=%lu:RefType=%@
:fileRef=%@:timestamp=%lu
:char-range=%@
:line-range=%@
:<range-type-%lu>=%@
:name='%@'
:name=%@:path='%@'
:name='%@'
:name='%@':buildSettings(%lu)=%@
:path='%@'
:quote
:identifier
:rfc1034identifier
:dir
:abs
:remoteRef='%@'
:File='%@':Head Revision=%@:Active Branch=%@
:scmProprties='%@':sandboxEntry='%@'
.... SNIP ....
upper
environment
diagnostics
type
category
description
path
kind
message
ranges
alternate
start
edges
location
file

也找到了这个:DevToolsCore Framework Reference。看起来像框架的API(- (id)initWithName:(id)arg1 productTypeIdentifier:(id)arg2)。

找不到任何其他文档,只是这个问题(xcode-info-plist-build-variable-product-namerfc1034identifier-seems-complete)。

答案 1 :(得分:4)

由于没有记录,我认为他们没有名字。在构建Xcode 4模板时,我在Apple模板中找到了3个变量修饰符,它们似乎执行以下操作:

  • identifier:确保它是合法的C变量名称。它用下划线替换非法字符。
  • bundleIdentifier:确保它是合法的捆绑包标识符。
  • RFC1034Identifier:确保它是合法的域名。

谢谢你,我认识另一个人:

  • upper:将值更改为大写。

未记录Xcode项目模板。它们在带有继承系统的plist中定义。它们的元素具有已定义的结构,并使用多个扩展宏和双下划线,如__PACKAGENAME__(也见于Xcode 3中),使用上述修饰符之一进行修改。

如果您想进一步深入研究,我建议Documentation: Xcode 4 templates。学习Apple的模板系统既痛苦又缓慢,直到我偶然发现这个PDF。这是10美元/ 7,50欧元,但它是值得的。编写模板仍然非常麻烦,我猜Apple工程师使用内部工具或耐心。

构建设置称为“构建设置”,它们记录在Xcode Build Setting Reference中。产品名称默认为您的目标名称,但您可以根据需要自行组成值。编写脚本时会引用这些设置。通常在使用XCode时不需要触摸任何东西。