Я успешно создал шаблон Xcode 8, который будет реагировать на эти действия:
- У вас уже есть рабочий проект
- Вы хотите добавить свой собственный быстрый файл в этот проект
Шаг за шагом, как это сделать:
Я создал под:
/Users/*YOUR_USER_NAME*/Library/Developer/Xcode/Templates/File Templates
Имя папки Custom/Interactor.xctemplate
Файлы внутри этой папки:
- ___ ___ FILEBASENAME Interactor
- TemplateInfo.plist
- TemplateIcon.png
- [email protected]
Итак, когда я нажимаю правой кнопкой мыши и создаю новый файл, я выберу пользовательский файл:
В приведенном выше примере работает и создается мой пользовательский файл:
То, что я пытаюсь достичь:
Я пытаюсь создать группу, которая будет содержать новый пользовательский файл. Нет необходимости в реальной папке или сложных задачах, просто группе, содержащей фактический файл.
Итак, конечный результат будет:
Поскольку нет документации, объясняющей, как создать пользовательский шаблон, я использовал множество ссылок: 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>
Что я пробовал:
Я попытался вставить этот ответ в мой 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>
Итак, где я должен вставлять эти ключи или что я делаю неправильно?
Любая помощь была бы очень оценена.
Спасибо.