Как получить Xcode для репликации структуры группы проектов в структуре папок на диске? - PullRequest
43 голосов
/ 03 декабря 2008

У меня есть проект Xcode со следующей структурой группы:

ProjectName/
    Classes/
        class1.h
        class1.m
        class2.h
        class2.m
        ...
    XMLDocs/
        doc1.xml
        doc2.xml
        ...
    Resources/
        Info.plist
        MainMenu.xib
        ...

и т. Д. И т. П.

Я бы хотел, чтобы это также отображалось в структуре папок на диске:

ProjectFolder/
    Project.xcodeproj
    Classes/
        class1.h
        class1.m
        class2.h
        class2.m
        ...
    XMLDocs/
        doc1.xml
        doc2.xml
        ...
    Resources/
        Info.plist
        MainMenu.xib
        ...

в отличие от обычного в методологии папки корневого проекта.

Есть ли способ сделать это без ручного создания структуры папок на диске и последующего повторного назначения всей ссылки в Xcode на новое место?

Бонусные баллы, если вы можете сказать мне, как сделать это автоматически каждый раз, когда я создаю новую группу или добавляю файлы в существующую группу в XCode.

Ответы [ 5 ]

59 голосов
/ 14 января 2011

Вы можете сделать это до некоторой степени! Есть только один дополнительный шаг, который нужно делать каждый раз, когда вы создаете новую группу (и в этот раз вам придется наверстать упущенное!):

Xcode location setting

Всякий раз, когда вы создаете группу в XCode, сразу же выбирайте ее и открывайте правую боковую панель. Обратите внимание на настройку «Местоположение:» чуть ниже ее имени. Щелкните значок папки рядом с «Нет» и установите для него новую папку с тем же именем.

Теперь, когда вы добавляете файлы в группу, они направляются в соответствующую папку на диске. Woo!

К сожалению, в этот раз у вас будет много перемещений файлов. (Когда вы измените групповые пути, все ваши файлы станут красными, так как Xcode начнет искать их в новой папке. Вам придется вручную переместить их из Finder, чтобы исправить это.) Однако есть команда инструмент для выполнения этой начальной миграции для вас: https://github.com/venmo/synx

11 голосов
/ 04 декабря 2008

Ссылка на папку - это то, что вы хотите. При перетаскивании или добавлении файлов в проект существует опция «Создать ссылки на папки для любых добавленных папок». Выберите это, и вы получите желаемое поведение.

альтернативный текст http://img.skitch.com/20081203-prtxsp7c36ern4afxxdixy93sq.png

Вы можете попробовать добавить всю вложенную папку проекта в качестве ссылки на папку. Это должно получить все. Или добавьте ссылки для «Классы», «Ресурсы» и «XML» по отдельности.

1 голос
/ 12 июля 2017

Xcode9 решает эту проблему. По умолчанию создается новая группа с соответствующей папкой на диске.

0 голосов
/ 28 мая 2019

Я обнаружил, что если вы перемещаете файлы в Xcode и одновременно нажимаете [CMD], то структура папок будет соответствовать структуре XCode.

0 голосов
/ 06 декабря 2008

В Xcode нет функции "сделать мой диск похожей на структуру моего проекта".

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...