6

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

$(PRODUCT_NAME:标识符)

使用 :upper 也会使设置值变为大写,但我不知道它们被称为什么并且找不到任何文档。有谁知道他们的名字或文档在哪里可以正确使用它们?

4

2 回答 2

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 框架参考。看起来像框架的 API ( - (id)initWithName:(id)arg1 productTypeIdentifier:(id)arg2)。

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

于 2011-10-19T16:26:03.393 回答
4

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

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

多亏了你,我知道了另一个:

  • upper:将值更改为大写。

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

如果您想进一步深入研究,我推荐Documentation: Xcode 4 templates。学习 Apple 的模板系统既痛苦又缓慢,直到我偶然发现了这个 PDF。10 美元/7.50 欧元,但物有所值。编写模板仍然很麻烦,我猜苹果工程师使用内部工具还是很有耐心的。

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

于 2011-10-19T16:03:38.447 回答