Как получить Xcode для репликации структуры группы проектов в структуре папок на диске?
У меня есть проект 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.
Ответы
Ответ 1
В Xcode нет функции "сделать мой диск похожим на структуру моего проекта".
Вы могли бы автоматизировать задачу, используя AppleScript, хотя: вы можете изучить и изменить структуру проекта из script. Таким образом, вам просто нужно написать script, который выполняет итерацию над структурой проекта и делает иерархию папок так, как это делает структура проекта, и настраивать, где Xcode файл и ссылки на группы указывают одновременно.
Ответ 2
Вы можете сделать это в некоторой степени! Есть только один дополнительный шаг, который вы делаете каждый раз, когда вы создаете новую группу (и в первый раз вам предстоит многое сделать!):
![Настройка местоположения Xcode]()
Всякий раз, когда вы создаете группу в Xcode, немедленно выберите ее и откройте правую боковую панель. Обратите внимание на настройку "Местоположение:" чуть ниже ее имени. Щелкните значок папки рядом с "Нет" и установите его в новую папку с тем же именем.
Теперь, всякий раз, когда вы добавляете файлы в группу, они отправляются в соответствующую папку на диске. Woo!
К сожалению, в это начальное время у вас будет много файлов, которые нужно сделать. (По мере изменения групповых путей ваши файлы будут красными, так как Xcode начнет искать их в новой папке. Вам придется вручную перенести их из Finder, чтобы исправить это.) Однако есть команда -line для выполнения этой начальной миграции для вас: https://github.com/venmo/synx
Ответ 3
Ссылка на папку - это то, что вы хотите. При перетаскивании или добавлении файлов в проект есть опция "Создать ссылки на папки для любых добавленных папок". Выберите это, и вы получите нужное поведение.
alt text http://img.skitch.com/20081203-prtxsp7c36ern4afxxdixy93sq.png
Вы можете попробовать добавить всю закрывающую папку проекта в качестве ссылки на папку. Это должно получить все. Или добавьте ссылки для "Классы" "Ресурсы" и "XML" индивидуально.
Ответ 4
Недавно я нашел инструмент командной строки, который организует вашу структуру папок. Он прост в установке и прост в использовании.
Подробнее см. еще один мой ответ о той же проблеме со структурой папок.
Ответ 5
Xcode9 решает эту проблему. По умолчанию новая группа создается с соответствующей папкой на диске.