Перемещение файлов в реальную папку в Xcode

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

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

Я пытаюсь сейчас реорганизовать вещи, создавая реальные папки и их импорт в Xcode. К сожалению, Xcode не позволяет мне работать с ними так, как с группами. Например, если я щелкните правой кнопкой мыши на фактической добавленной папке (синий, а не желтый) и выберите Добавить существующие файлы, он фактически не помещает их в эту папку, он помещает их в свой корень.

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

Что я пропал? Как я могу убедить Xcode разрешить мне использовать папки так, как я использую группы? Здесь есть ответ на несколько похожий вопрос, но это на самом деле не решает мою проблему, так как я работаю с существующими файлами.

11 ответов


современный (и мертвый простой!) подход для 2017 (Xcode 6, 7, 8, а иногда и 9, так как он делает это автоматически некоторое время):

Если вы перемещаете кучу файлов в новую папку и сохраняете дочернюю иерархию, это на самом деле намного проще, чем перемещать каждый файл по отдельности:

  1. создать новую группу в дереве папок Xcode и организовать ваши файлы в них, как вам нравится.
  2. создайте соответствующее дерево физических папок в Finder и организуйте свои физические файлы в них, чтобы соответствовать, что вы сделали в шаге 1.
  3. все ссылки в Xcode теперь должны быть красными (это нормально!).
  4. в диспетчере идентификаторов и типов выберите группа в Xcode, который вы хотите переместить, затем нажмите значок папки на панели информации:

  5. в диалоговом окне Выбор Finder найдите эквивалентную новую папку, созданную для этой группы на Шаге 2. все файлы внутри этой группы теперь будут автоматически вновь!

разве это не мило? Самое большее, вам придется повторить эти 5 шагов один раз для каждой новой группы, которую вы создали (что превосходит перемещение каждого файла по отдельности!)

Бонусные Баллы!

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


ДАЛЕЕ ОТРЕДАКТИРОВАНО ИЮНЬ 2017: Xcode 9 делает это автоматически, никаких особых усилий не требуется. Этот ответ и Брендон применяется только к Xcode 8 и ранее.

ОТРЕДАКТИРОВАНО ДЕКАБРЬ 2016: ответ Брэндона ниже-лучшее решение сейчас. Когда этот ответ был создан в 2010 году это был единственный вариант, который я смог найти. Теперь я предлагаю Брендон ниже.


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

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

Процесс

перемещение файлов-это двухэтапный процесс с несколькими подэтапами:

  1. укажите Xcode, где вы хотите, чтобы файлы будь:

    • щелкните правой кнопкой мыши файл или группу файлов, которые вы хотите переместить, и выберите Информация из контекстного меню, которое появляется. The Информация О Группе или Информация О Файле.

    • выберите выбрать кнопка в дальней правой части окна в путь зона. Откроется диалоговое окно.

    • перейдите к нужной папке файлы для перемещения. Создать Новая Папка при необходимости. Нажмите выбрать кнопка в правом нижнем углу диалогового окна, затем закройте Информация О Группе / Информация О Файле. Решение, хотя я не знаю, почему это имеет значение, заключается в том, чтобы сначала использовать Xcode, чтобы поместить эти файлы в группу (right / control-click the files и выберите группа, и дайте группе имя), а затем переместите группу в новое место. После того как вы фактически двинули файлы в Finder вы можете удалить их из группы (перетащив их в новую родительскую группу / папку и удалив группу).

    • остановка и сборка каждые несколько минут после завершения шага 2 для нескольких файлов. Сборка скажет вам, если вы что-то испортили до сих пор, что делает его легче вернуться и исправить, прежде чем вы сделали слишком много вреда.

    • если файлы не будут двигаться туда, куда вы хотите, чтобы они - у меня было дьявольское время перемещение некоторых файлов, которые были созданы на ранней стадии в папке Classes - вы можете просто перетащить их из своего старого места в finder в удобное место, как рабочий стол, удалить ссылки на них в Xcode, а затем повторно импортировать их с помощью правой / control-click Добавить Существующие Файлы.

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

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


в Xcode 5 или Xcode 6:

  1. создайте папки, которые сопоставляются с вашими группами в Finder
  2. переместить файлы в эти папки в Finder
  3. Выберите каждый красный файл на боковой панели Xcode слева
  4. Нажмите кнопку "Показать / Скрыть утилиты", чтобы открыть правую боковую панель (см. рисунок)
  5. в "Identity and Type" нажмите крошечную кнопку и выберите местоположение файла (см. рисунок)

enter image description here

Ура.


Я нашел самый надежный способ обойти ужасающий дизайн XCode здесь, чтобы организовать все ваши файлы в Finder, по двум причинам:

  1. Finder не делает "ошибок", в отличие от GUI XCode
  2. после того, как вещи организованы в Finder, вы можете перетащить / падение целых папок Finder в XCode, и ... он делает именно то, что вы хотели, без каких-либо усилий

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

  1. Выберите файлы в Finder
  2. создайте папку в Finder для них
  3. перетащите их в папку (автоматически перемещает их)
  4. перетащите папку Finder в Xcode (автоматически: создает папку Xcode, добавляет каждый файл в папку Finder)
  5. cmd-выберите каждый "красный" файл, который вы теперь видите в Xcode (потому что вы переместили их) и нажмите клавишу delete

NB: я никогда не использую "создать перетаскиваемые папки с подгруппами", потому что в XCode 3 это часто безнадежно глючит и может повредить проекты. Apple явно (IMHO) не использует эту функцию внутри, иначе ей никогда бы не разрешили быть такой багги; если Apple не использует вещь, это, как правило, не безопасно использовать его - они не хороши в тестировании:)


есть простой в настройке и использовании инструмент командной строки - "synx" доступно в github, которые делают именно то, что нужно здесь.

реорганизация папку проекта Xcode в Finder в матче группы в Xcode проекта.

вы можете найти его здесь: https://github.com/venmo/synx

обновление: в Xcode 9 поддерживает эту функцию по умолчанию. Таким образом, нет необходимости использовать другие инструменты больше!


Xcode 9

Кажется, Xcode 9 теперь поддерживает его по умолчанию. При перемещении файлов из одной группы в другую файл также будет перемещен из старой папки в новую. Об этом было объявлено в WWDC 2017.


я использовал следующий инструмент для ее достижения.организовать папки в группах Xcode

--no-default-exclusions

обычно я перемещаю файлы в каталог непосредственно в Finder, а затем исправляю файлы с именами красного цвета в XCode в диалоговом окне "получить информацию": нажмите "Выбрать"..."кнопка и выберите новый locatoin файла. Это первый ответ, когда я хочу переместить файлы в XCode, и он работает.


начиная с Xcode 4.5 при перетаскивании структуры папок она автоматически превращается во вложенные группы В навигаторе проектов. Затем, если вы посмотрите на диск (например правой кнопкой мыши и выберите Показать в Finder), структура папок была сохранена.

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


для перемещения папки в xcode 4.5 я просто...

  1. удалите файлы / группы из xcode и выберите "удалить ссылку".
  2. перейдите в finder и переместите папку/файлы по мере необходимости.
  3. после этого я возвращаюсь в Xcode и выбираю File - >Add Files to {ProjectName}.
  4. убедитесь, что установлен флажок" копировать элементы в папку целевой группы (при необходимости)"
  5. убедитесь, что установлен флажок "создать группу для любой добавленной папки"
  6. убедитесь, что "Добавить в цель" проверяется для вашего проекта

самый простой метод для XCode 8....

предполагая, что у вас есть файлы A,B, C в логической группе, но вы хотите переместить их в папку на жестком диске.

  1. создайте папку назначения через Finder
  2. Добавить папку в XCode (Файл -> Добавить файлы ) с помощью панели параметров, чтобы выбрать ссылку на папку (не группу)
  3. перетащите файлы A,B, C из (старой) группы в (новую) папку в навигаторе проектов. XCode будет перемещать файлы в папку, как в проекте, так и на диске.

сделано.