终于,Apple 制作了一些关于此的文档。截至目前,这在 Xcode 手册的“文本宏”部分中。
文本宏格式参考
文本宏可以包含任何有效的 Unicode 文本。它还可以包含其他文本宏。
包括其他文本宏
要包含另一个文本宏,请在宏名称前后添加三个下划线 (_) 字符:
___<MacroName>___
修改文本宏扩展
您可以通过添加一个或多个修饰符来修改文本宏的最终扩展。通过在宏的末尾放置一个冒号 (:) 后跟修饰符,将修饰符添加到文本宏中。添加多个修饰符,每个修饰符用逗号 (,) 分隔。
<MACRO>:<modifier>[,<modifier>]…
例如,以下宏将从 FILENAME 宏中删除路径扩展:
FILENAME:deletingPathExtension
要将上面修改后的宏变成有效的 C 标识符,请添加标识符宏:
FILENAME:deletingPathExtension,identifier
修饰符
bundleIdentifier:用连字符 (-) 替换任何非捆绑标识符字符。
deletingLastPathComponent:从扩展字符串中删除最后一个路径组件。
deletingPathExtension:从扩展字符串中删除任何路径扩展。
deletingTrailingDot:删除所有尾随点 (.)。
标识符:将任何非 C 标识符字符替换为下划线 (_)。
lastPathComponent:仅返回扩展字符串的最后一个路径组件。
pathExtension:返回扩展字符串的路径扩展名。
rfc1034Identifier:用连字符 (-) 替换任何非 rfc1034 标识符字符。
xml:用相应的转义字符串替换特殊的 xml 字符。例如,小于 (<
文本宏
文本宏参考
版权所有
使用项目团队的公司名称的版权字符串。如果没有公司名称,则字符串为空。
该示例显示公司设置为“Apple”时的版权字符串。
版权所有 © 2018 Apple。保留所有权利。
日期
当前日期。
默认工具链SWIFTVERSION
用于默认工具链的 Swift 版本。
文件库名称
当前文件的名称,不带任何扩展名。
FILEBASENAMEASIDENTIFIER
编码为 C 标识符的当前文件的名称。
文件头
放置在每个新文本文件顶部的文本。
文件名
当前文件的全名。
全用户名
当前 macOS 用户的全名。
NSHUMANREADABLECOPYRIGHTPLIST
macOS 应用程序目标的 Info.plist 文件中人类可读版权字符串的条目。宏的值必须包含 plist 的 XML 分隔符。例如,有效值为:
'''
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2018 Apple, Inc. All rights reserved.</string>
'''
注意该值包含换行符。
组织名称
显示在整个项目文件夹中的样板文本中的组织名称。您项目中的组织名称与您在 App Store Connect 中输入的组织名称不同。
包名
当前方案构建的包名。
PACKAGENAMEASIDENTIFIER
当前方案构建的包名称的 C 标识符编码版本。
产品名称
当前方案构建的产品的应用名称。
项目名称
当前项目的名称。
RUNNINGMACOSVERSION
运行 Xcode 的 macOS 版本。
目标名称
当前目标的名称。
时间
当前时间。
用户名
当前 macOS 用户的登录名。
UUID
返回一个唯一的 ID。第一次使用此宏时,它会在返回之前生成 ID。您可以使用此宏通过修饰符创建多个唯一 ID。每个修饰符返回一个对该修饰符唯一的 ID。例如,第一次使用 UUID:firstPurpose 修饰符时,宏会生成并返回该宏和修饰符组合的唯一 ID。 UUID:firstPurpose 修饰符的后续使用返回相同的 ID。添加 UUID:secondPurpose 修饰符会生成并返回一个不同的 ID,该 ID 对于 UUID:secondPurpose 是唯一的,并且不同于 UUID:firstPurpose 的 ID。
工作空间名称
当前工作区的名称。如果只打开一个项目,则为当前项目的名称。
年份
以四位数字表示的当前年份。