2016-09-29 2 views
4

Возможно ли поддерживать иерархию структурированных групп в Xcode при генерации из диспетчера быстрых пакетов? Каждый раз, когда я запускаю:Swift менеджер пакетов генерирует проект Xcode при сохранении структуры группы

swift package generate-xcodeproj 

Я потерял любую группу (а не папку, которая отлично работает). Мне часто нравится иметь некоторый уровень визуальной организации, который не отображается в коде (т. Е. Группы, а не в папках) при программировании в Xcode.

+1

Есть ли причина, по которой вы не используете одну и ту же структуру файловой системы для своих файлов, как вы хотите, в структуре группы? –

+0

Да, например, чтобы взять грубый пример, представьте себе создание серии отдельных файлов с включенными классами для следующих объектов: Bird, Fish, Human, все из которых ссылаются на суперкласс в отдельном файле Living. Затем Вы можете организовать их: Файл: Living, Группа: Породы -> Файл: Bird -> Файл: Fish -> Файл: Человек, Если вид была папка, это не будет работать с SPM –

ответ

2

Я считаю, что то, что вы хотите, чтобы организовать свои источники следующим образом (на основе прослеживания комментариев):

Foo/Package.swift Foo/Sources/Foo/Living.swift Foo/Sources/Foo/Specifies/Bird.swift Foo/Sources/Foo/Specifies/Fish.swift Foo/Sources/Foo/Specifies/Human.swift

Обратите внимание, что важно немного здесь является то, что если вы хотите использовать подкаталоги, вы должны убедиться, что ваш код полностью вложен на один уровень ниже Sources. Это соглашение используется, когда один пакет объявляет несколько целей, и требуется, если вы хотите использовать вложенность для источников. См. Раздел source layouts в ссылке.

Если вы используете этот макет, то с последним менеджером пакетов Swift (доступным через swift.org) сгенерированный проект Xcode будет иметь структуру группы, я считаю, что вы хотите.

Это то, что мы знаем, сейчас запутывает, и мы оцениваем, как лучше всего улучшить ситуацию.

+0

Если я сделайте это, затем в Xcode после 'swift package generate-xcodeproj', тогда я получаю то, что вы заявляете, но они не разбиты на группы. Все файлы находятся на одном уровне, но теперь они называются: 'Определяет/Bird.swift' и т. Д. Вместо того, чтобы находиться в группе' Specifications' –

+0

Это было исправлено относительно недавно в SwiftPM - чтобы получить это поведение, вы можете необходимо будет захватить одну из последних наборов инструментов из http://swift.org –

Смежные вопросы