【问题标题】:What are the build setting modifiers in Xcode called?Xcode 中的构建设置修饰符叫什么?
【发布时间】:2011-10-19 15:54:54
【问题描述】:

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

$(PRODUCT_NAME:标识符)

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

【问题讨论】:

    标签: xcode xcode-template


    【解决方案1】:

    文件/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)。

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

    【讨论】:

      【解决方案2】:

      由于他们没有记录,我认为他们没有名字。在构建 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-04-12
        • 1970-01-01
        • 1970-01-01
        • 2020-08-25
        • 2013-03-24
        • 2021-06-12
        • 2012-12-16
        • 2013-04-20
        • 1970-01-01
        相关资源
        最近更新 更多