Рабочий процесс для создания групп Xcode в виде папок файловой системы


мне нравится организовывать свои классы в группы на панели навигатора проекта Xcode 4. Я также использую git versioning через терминал, который работает лучше для меня, чем интеграция Xcode 4. Для меня это имеет наибольший смысл, когда группы, которые я создаю в Xcode, соответствуют реальным папкам в моей файловой системе.

однако Xcode, похоже, не заботится о том, где находится файл (например, Objective-C .ч./m file) находится в файловой системе, и каждый раз, когда вы добавляете группу (Option+Command+N) Это чисто косметическое, для любого файлы, которые вы туда помещаете, будут находиться в том же месте на вашем жестком диске, что и остальные.

странно то, что если вы сначала создадите папку на жестком диске, а затем перетащите ее в Xcode, вы создали группу со своим собственным местоположением в вашей файловой системе. Каждый файл, который вы создадите там, будет создан в папке на диске. Мне это нравится, но мне бы это понравилось еще больше, если бы Xcode сделал это для меня в Option+Command+N. Процесс переключения в Finder для каждой группы нужно создать и тогда перетаскивание его обратно в нужное место в навигаторе проекта просто глупо.

это похоже на то, что настройка будет исправлена, но я не могу ее найти! Есть ли лучший способ?

обновление: при перетаскивании папки в Xcode вы получите диалоговое окно, в котором вы можете выбрать "ссылка на папку". Это выглядит многообещающе, однако мой Xcode 4 не принимает файлы там в качестве классов и продолжает говорить мне, что он не может найти никаких файлов. Может быть, ответ лежит здесь где-то, но я все еще не могу найти его.

другие новости: я изменил свою основную редакторскую среду с Xcode на AppCode. Последний поддерживает фактическое создание папок для поддержки групп проектов, сохраняя при этом 100% совместимость с Xcode. Эти ребята из AppCode точно знают, что они делают.

3 59

3 ответа:

обновление

ниже описывается Xcode 9 и более поздние версии.

9 начиная с Xcode, Xcode может автоматически создать папку файловой системы при создании группы в вашем проекте.

при щелчке правой кнопкой мыши (или щелчке управления) в навигаторе проектов контекстное меню будет включать пункт меню "новая группа" и или пункт меню "новая группа с папкой"или меню "новая группа без папки" пункт.

  • Если Xcode предлагает "новую группу" и "новую группу с папкой", то "новая группа" создает группу без папки.

  • Если Xcode предлагает "новую группу" и "новую группу без папки", то "новая группа" создает группу с папкой.

другими словами, "новая группа" всегда делает противоположное другому (явному) пункту меню в отношении создания папки.

Если вы переименуете группу, и что группа имеет соответствующую папку с тем же именем, Xcode 9 также переименовывает папку.

в Xcode 9, Если вы перетаскиваете файл из одной группы в другую, и группы имеют разные папки, Xcode 9 перемещает файл в папку новой группы, независимо от того, имеет ли папка новой группы то же имя, что и группа.

Если вы не хотите, чтобы это поведение в Xcode 9, вы можете установить недокументированный параметр из команды линия:

defaults write com.apple.dt.Xcode IDEDisableStructureEditingCoordinator -bool YES

невозможно вывести сведения о "новой группе с папкой "и"новой группе без папки"

совсем не очевидно, как Xcode решает, показывать ли "новую группу" и "новую группу с папкой" или "новую группу" и "новую группу без папки". Инженер Apple на WWDC 2018 (я думаю, его звали Пол) посмотрел на исходный код Xcode и объяснил мне:

  • Xcode выясняет, на какую группу вы нажали (или, если вы не нажали группа, она выясняет, какая группа содержит элемент, который вы щелкнули).
  • Xcode смотрит на подгруппы (и связанные папки), которые являются дочерними элементами выбранной группы.
  • если большинство подгрупп имеют свои собственные папки, то Xcode предполагает, что вы хотите, чтобы новая группа также имела свою собственную папку. Таким образом, Xcode показывает "новую группу" (которая создаст папку) и "новую группу без папки".
  • если большинство подгрупп делают не есть свои собственные папки, то Xcode предполагает, что вы хотите, чтобы новая группа также не есть своя папка. Поэтому Xcode показывает "новую группу "(которая будет не создать папку) и "новая группа с папки".
  • я не знаю, как Xcode разрывает связь, если ровно половина подгрупп имеет свои собственные папки, и я не хочу тестировать его прямо сейчас...
  • если щелкнутая группа не имеет подгрупп, Xcode решает, что показывать на основе того, является ли щелкнутая группа сама имеет свою собственную папку.

В основном, Xcode пытается угадать, должна ли Ваша новая группа иметь свою собственную папку на основе того, есть ли у ее будущих братьев и сестер свои собственные папки.

оригинал

вы можете создать новую группу, с собственной папкой, непосредственно в Xcode, но это совсем не очевидно.

вместо выбора "новая группа", выберите"Добавить файлы в" ". Затем в диалоговом окне выбора файлов нажмите кнопку кнопка Создать папку или нажмите Command-Shift-N и введите имя новой папки/группы. Затем убедитесь, что выбран параметр "создать группы для любых добавленных папок" и нажмите кнопку Добавить или нажмите кнопку Вернуть.

adding a group with its own folder

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

но он сохраняет несколько шагов, если вы создаете новую группу для хранения новых файлов.

для тех, кто слишком ленив, чтобы синхронизировать папки, есть хороший инструмент на GitHub.

Synx-это инструмент командной строки, который реорганизует папку проекта Xcode в соответствии с вашими группами Xcode.

enter image description here

надеюсь, это поможет кому-то

взгляните на ответ andyvn22 здесь

перефразируя:

  • Xcode 3: всякий раз, когда вы создаете группу в Xcode, немедленно получить информацию на нем и обратите внимание на" путь: "установка чуть ниже его имени. Щелчок "Выбирать..."и установить ее в новую папку с тем же именем.
  • Xcode 4: всякий раз, когда вы создаете группу в Xcode, немедленно выберите ее и откройте правую боковую панель. Обратите внимание на параметр" путь:" просто под его названием. Нажмите на значок рядом с "Нет" (что это, файл в окно?) и установить ее в новую папку с тем же именем.

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

просто попробовал это в моем проекте Xcode4, работает как шарм.