你想创造什么?项目模板还是文件模板?
- 如果要创建新的文件模板,则需要将整个
"*.xctemplate"
文件夹从"/Xcode/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates"
(您将用作示例/起点)复制到"~/Library/Application Support/Developer/Shared/Xcode/File Templates"
.
- 如果你想创建一个新的项目模板,对一个
"*.xctemplate"
文件夹执行相同的"/Xcode/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates"
操作"~/Library/Application Support/Developer/Shared/Xcode/Project Templates"
- 如果应用支持中不存在
"File Templates"
/文件夹,请创建它们。"Project Templates"
不要将模板复制到 Xcode 包本身,因为它不打算这样做(并且违反了沙盒概念,并且会在您下次升级 Xcode 版本时被覆盖),而是使用该Application Support
文件夹,因为它是它的目的。
将 Xcode 包中的一个.xctemplate
文件夹复制到相应的 App Support 文件夹后,您可以修改其中的内容.xctemplate
以满足您的需要。
现在,您在 xctemplate 文件夹中没有任何 xcodeproj,这是因为由项目模板创建的项目不是使用 xcodeproj 文件定义的,而是使用TemplateInfo.plist 文件中的键定义的。
例如,"Project Templates/Mac/Mac Base.xctemplate/TemplateInfo.plist"
您可以看到一个名为"Project"
subkeys "Configurations"
、的键"SDK"
,"SharedSettings"
它为要由模板创建的 xcodeproj 定义了一些构建设置。
此外,请注意模板具有某种“继承”概念,每个模板都能够具有定义公共键的“祖先”:
- 打开
"TemplateInfo.plist"
文件并查看"ancestors"
密钥
- 您将在此处找到所选模板的祖先的标识符数组。例如,
"Cocoa Application.xctemplate"
模板"com.apple.dt.unit.cocoaApplicationBase"
作为其祖先之一。
- 然后去找到模板,其标识符是在祖先键中找到的那个(在我的例子中,它就是
"Cocoa Application Base.xctemplate"
模板,在它的中TemplateInfo.plist
你可以看到它的"Identifier"
键是"com.apple.dt.unit.cocoaApplicationBase"
我们上面看到的)。
而且您可以像这样向上直到基本模板,对模板定义具有某种“继承”。