Ссылки на папки Xcode 9 с пользовательским шаблоном проекта
В Xcode 9, когда вы создаете группу, она также создает связанную папку в файловой системе. Поэтому вам не нужно создавать папку для каждой группы вручную. Хорошее объяснение изменений в группе и папке в Xcode 9, см. Это.
У меня есть собственный шаблон проекта Xcode, который генерирует проект и добавляет множество исходных файлов шаблонов Swift в пользовательские папки. Моя проблема в том, что я могу создавать только такие групповые папки: , которая представляет группу, не связанную с файловой системой. Это плохо, потому что если вы позже переименуете папку в Xcode, это не повлияет на соответствующий каталог файловой системы.
Моя цель - написать шаблон проекта Xcode, который добавит мои настраиваемые файлы шаблонов swift в настоящие справочные папки следующим образом: .
Вы можете скачать мой упрощенный шаблон отсюда, поместить его под: ~/Library/Developer/Xcode/Templates
Затем Xcode> File> New> Project и выберите Custom-Template.
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>Kind</key>
<string>Xcode.Xcode3.ProjectTemplateUnitKind</string>
<key>Concrete</key>
<true/>
<key>Identifier</key>
<string>custom-swift.xcodeTemplate</string>
<key>Description</key>
<string>Swift starter project for iOS projects</string>
<key>Ancestors</key>
<array>
<string>com.apple.dt.unit.cocoaTouchFramework</string>
</array>
<key>Nodes</key>
<array>
<string>Classes/Interfaces/CustomInterface.swift</string>
</array>
<key>Definitions</key>
<dict>
<key>Classes/Interfaces/CustomInterface.swift</key>
<dict>
<key>Group</key>
<array>
<string>Classes</string>
<string>Interfaces</string>
</array>
<key>Path</key>
<string>Classes/Interfaces/CustomInterface.swift</string>
</dict>
</dict>
</dict>
</plist>
Он создает такой проект:
Что я хотел бы достичь:
Любая помощь высоко ценится! :)
Обновление 1:
Я нашел небольшое обходное решение. Создайте свою собственную сложную иерархию папок со сценарием шаблона, а затем просто удалите корневую папку - в моем случае "Классы". Затем откройте корзину и перетащите ее обратно в Xcode, выберите "Скопируйте элементы при необходимости" и выберите "Создать группы". Он создаст структуру папок с реальными справочными папками.
Ответы
Ответ 1
Для этой цели можно использовать Компоненты, используемые в шаблоне imessages
Примером компонента является
<key>Components</key>
<array>
<dict>
<key>Identifier</key>
<string>com.apple.dt.unit.messagesextensioncomponentios</string>
<key>Name</key>
<string>___PACKAGENAME___ MessagesExtension</string>
<key>ProductBuildPhaseInjections</key>
<array>
<dict>
<key>TargetIdentifier</key>
<string>com.apple.dt.messagesOnlyApp</string>
</dict>
</array>
</dict>
</array>