【发布时间】:2017-05-19 23:36:40
【问题描述】:
我已经成功创建了一个 Xcode 8 模板来响应这些操作:
- 您已经有一个工作项目
- 您想将自定义 swift 文件添加到此项目中
一步一步,如何实现:
我在以下创建:
/Users/*YOUR_USER_NAME*/Library/Developer/Xcode/Templates/File Templates
文件夹名称Custom/Interactor.xctemplate
该文件夹内的文件:
- ___FILEBASENAME___Interactor
- TemplateInfo.plist
- TemplateIcon.png
- TemplateIcon@2x.png
所以当我右键创建新文件时,我会选择自定义文件:
上面的例子有效并创建了我的自定义文件:
我想要达到的目标:
我正在尝试创建一个包含新自定义文件的组。不需要实际的文件夹或复杂的任务,只需一个包含实际文件的组。
所以最终的结果是:
由于没有说明如何创建自定义模板的文档,我使用了许多参考资料:ref1、ref2、ref3、ref4。
这是TemplateInfo.plist 文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DefaultCompletionName</key>
<string>MyCustomInteractor</string>
<key>Description</key>
<string>Custom interactor</string>
<key>Kind</key>
<string>Xcode.IDEKit.TextSubstitutionFileTemplateKind</string>
<key>Options</key>
<array>
<dict>
<key>Description</key>
<string>Custom interactor</string>
<key>Identifier</key>
<string>fileName</string>
<key>Name</key>
<string>Custom name</string>
<key>NotPersisted</key>
<true/>
<key>Required</key>
<true/>
<key>Type</key>
<string>text</string>
</dict>
<dict>
<key>Default</key>
<string>___VARIABLE_fileName:identifier___</string>
<key>Identifier</key>
<string>productName</string>
<key>Type</key>
<string>static</string>
</dict>
<dict>
<key>Default</key>
<string>___VARIABLE_fileName:identifier___Interactor</string>
<key>Description</key>
<string>The interactor name</string>
<key>Identifier</key>
<string>interactorName</string>
<key>Name</key>
<string>Interactor Name:</string>
<key>Required</key>
<true/>
<key>Type</key>
<string>static</string>
</dict>
</array>
<key>Platforms</key>
<array>
<string>com.apple.platform.iphoneos</string>
</array>
<key>SortOrder</key>
<string>99</string>
</dict>
</plist>
我尝试过的:
我尝试将this 答案插入到我的 TemplateInfo.plist 中,但没有任何反应。在我看来,这可能与范围问题有关——也许我没有在正确的位置插入 Definitions 或 Nodes 键。我一直在努力解决的 xml Definitions 和 Nodes 代码片段:
<key>Definitions</key>
<dict>
<key>___FILEBASENAME___Interactor.swift</key>
<dict>
<key>Group</key>
<string>Custom Interactor</string>
<key>Path</key>
<string>___FILEBASENAME___Interactor.swift</string>
</dict>
</dict>
<key>Nodes</key>
<array>
<string>___FILEBASENAME___Interactor.swift</string>
</array>
那么我应该在哪里插入这些键或者我做错了什么?
任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
这里的问题完全一样......似乎
Definitions和Nodes只考虑到项目模板,并且将文件添加到模板中的文件夹会使XCode改为导入文件夹创建组... -
@OhadM 如果您发现请发表回答
-
我也想知道
-
是的,2020 年在这里——仍在寻找这个问题的答案......苹果应该真正记录这一点。
-
2021:还在寻找 =)
标签: xcode templates xcode8 xcode-template