Ссылки на папки Xcode 9 с пользовательским шаблоном проекта - PullRequest
0 голосов
/ 20 мая 2018

В Xcode 9, когда вы создаете группу, она также создает связанную папку в файловой системе.Таким образом, вам не нужно создавать папки для каждой группы вручную.Хорошее объяснение об изменениях, связанных с группами и папками в Xcode 9, , см. Здесь .

У меня есть собственный шаблон проекта Xcode, который генерирует проект и добавляет загруженные исходные файлы Swift в стандартныйпапки.Моя проблема в том, что я могу создавать только групповые папки, например: enter image description here, представляющий группу, не связанную с каталогом файловой системы.Это не хорошо, потому что если вы позже переименуете папку в XCode, это не повлияет на соответствующий каталог файловой системы.

Моя цель - написать шаблон проекта XCode, который добавит мои собственные шаблоны swift-файлов в реальную ссылкутакие папки: enter image description here.

Вы можете скачать мой упрощенный шаблон из здесь , поместить его в: ~ / Library / Developer / Xcode / Templates

Затем Xcode> Файл> Создать> Проект ивыберите 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>

Создает проект, подобный этому:

enter image description here

Чего бы я хотел достичь:

enter image description here

Любая помощь очень ценится!:)

Обновление 1:

Я нашел небольшой обходной путь. Создайте собственную сложную иерархию папок с помощью скрипта шаблона, затем просто удалите корневую папку - в моем случае«Классы».Затем откройте корзину и перетащите ее обратно в Xcode, выберите «Копировать элементы при необходимости» и выберите «Создать группы».Он создаст структуру папок с реальными ссылочными папками.

1 Ответ

0 голосов
/ 29 мая 2018

Для этого можно использовать компоненты, используемые в шаблоне 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...