Переименование проекта xcode 4 и фактической папки

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

Ответ 1

Вы можете сделать это из Xcode, не прибегая к ручному редактированию файла pbxproj в текстовом редакторе!

Вот как:

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

  • В Xcode нажмите на (теперь сломанную) виртуальную папку на левой боковой панели и переименуйте ее в соответствии с именем в Finder (вы можете на самом деле называть ее чем угодно, или вообще не переименовывать ее, но это было бы безумным). Это не будет исправлять красные файлы внутри папки, но это нормально.

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

  • В настройках сборки найдите имя старой папки и вручную переименуйте все найденные вами вхождения. Обычно будет два из них: oldfolder/prefix.pch и oldfolder/info.plist, но могут быть и другие.

Все сделано!

enter image description here

EDIT: этот параметр все еще присутствует в Xcode 5, но по умолчанию он скрытно скрыт. Чтобы показать это, нажмите тонкий заголовок "Идентификация и тип" в инспекторе над панелью "Параметры текста", чтобы развернуть его.

Ответ 2

Я делал это несколько раз:

  • Переименуйте проект, щелкнув затем редактирование заголовка в навигаторе проектов Xcode.
  • Закрыть Xcode.
  • Переименуйте исходную папку.
  • В Finder откройте файл .pbxproj внутри пакета проекта (контекстное меню "Показать содержимое пакета" ) с любым текстовым редактором.
  • Найдите и замените любое вхождение исходного имени папки с новым именем папки.
  • Сохраните файл.
  • Открыть проект Xcode.

Ответ 3

Задача: Переименуйте "Воспроизвести" на "Play2" как в Xcode, так и в Finder

Измените это:

enter image description here

Для этого:

enter image description here

ШАГОВ:

//Прежде всего, создайте резервную копию проекта в Finder!

  • Переименуйте проект в Xcode. Навигатор проекта.//Нажмите имя проекта и нажмите enter.
  • Переименовать группу в Xcode. Навигатор проекта//не влияет на имя папки в Finder
  • Закрыть Xcode
  • Переименуйте внешнюю папку (левый столбец на изображении) в Finder

//Все вышеперечисленные шаги являются прямыми и без побочных эффектов // // Теперь идет сложная часть: переименуйте внутреннюю папку (средний столбец на изображении) в Finder (тот, который находится на том же уровне с .xcodeproj)

  • Переименуйте внутреннюю папку в Finder, не закрывая Xcode
  • Щелкните правой кнопкой мыши .xcodeproj, выберите "Показать содержимое пакета"
  • Открыть файл .pbxproj с Mac TextEdit
  • Найдите и замените все "Воспроизвести" на "Play2". Чтобы все было правильно, щелкните стрелку в левой части панели поиска и измените атрибут поиска. Изменить "Содержит" на "Полное слово" и снять флажок "Игнорировать дело"
  • Сохранить файл .pbxproj
  • Открыть проект Xcode и выполнить

Ответ 4

Вот как эффективно переименовать проект в XCode4 (ВКЛЮЧАЯ ФАЙЛЫ ФАЙЛОВ):

  • Закройте все открытые проекты полностью в XCode, чтобы предотвратить любые проблемы.
  • Скопируйте данный проект в новую папку (ВАЖНО: ХРАНИТЕ РЕЗЕРВИРОВАНИЕ ВАШЕГО СТАРЫХ ПРОЕКТОВ)
  • Откройте проект
  • Переименуйте сам проект в XCode4 (дважды щелкните имя проекта), измените имя и выполните шаги (да для всего)
  • Перейдите к продукту, управляйте схемами и переименуйте схему (дважды щелкните по названию схемы)
  • Закройте свой проект (убедитесь, что он полностью закрыт, иначе следующие шаги не будут работать)
  • В Finder перейдите в папку Project и щелкните правой кнопкой мыши на файле .xcodeproj, затем выберите опцию "Показать содержимое пакета"
  • Затем щелкните правой кнопкой мыши файл .pbxproj и откройте его с помощью TextEdit
  • Заменить все вхождения имени папки, в котором были использованы проекты (название старого проекта для нового имени проекта)
  • Сохранить файл
  • Откройте проект снова и создайте его!

Ответ 5

Первый из - не переименовывать проект Xcode!!!

Если вам это нужно, внизу это может быть - я никогда не получил его на работу, в итоге создал новый проект и начал копировать все существующие файлы. Xcode так ах... У него так много непродуктивных вещей, как и попробуйте переименовать файл с "Name" на "name". Ну, хорошо повеселиться.

Я нашел ответ или как обойти это: Откройте файл pbxproj, щелкнув правой кнопкой мыши "Показать содержимое пакета", и там вы редактируете файл project.pbxproj - вам нужно переименовать ссылку, называемую path, и некоторые другие вещи - просто найдите имя папки, добавленное "/".

Вот и все. Надеюсь, это поможет кому-то.

Ответ 6

Вот еще одна проблема, о которой вам следует знать при замене значений в вашем файле *.pbxproj. Если ваше старое имя папки было FooBar, у вас будет запись в вашем файле *.pbxproj, который выглядит следующим образом:

path = FooBar

Предположим, что ваше новое имя папки - Foo Bar. То есть вы вводите пространство. Затем эта строка должна стать

path = "Foo Bar"

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

Ответ 7

Я подхожу к себе, изучая различные ответы выше и пробую себя. Предположим, что текущее название проекта - ProjAbc, и вы хотите переименовать его в ProjDef:

  • Выйти из Xcode этого проекта.

  • В Finder дублируйте папку ABOVE ProjAbc.xcodeproj для резервного копирования.

  • В Finder свободно переименуйте папку ABOVE ProjAbc.xcodeproj, если вы считаете, что она вам нужна, чтобы соответствовать новому названию проекта.

  • В Finder переименуйте папку исходных файлов параллельно ProjAbc.xcodeproj из ProjAbc в ProjDef

  • Откройте Xcode для ProjAbc.xcodeproj(в Навигаторе проектов все файлы в папке с виртуальным исходным кодом ProjAbc будет красного цвета).

  • В Xcode нажмите на (теперь сломанную) виртуальную папку в Навигаторе проектов на боковой панели и переименуйте ее в соответствии с именем в Finder - ProjDef. Это еще не исправляет красные файлы внутри папки, но это нормально.

  • В Xcode (по-прежнему выберите виртуальную папку в левой боковой панели) в правой боковой панели, в Инспекторе файлов щелкните значок, показанный на скриншоте ниже, чтобы открыть диалоговое окно файла. В диалоговом окне файла выберите папку, которую вы ранее переименовали (ProjDef). Это позволит связать виртуальную папку с реальной папкой на диске и автоматически исправить ссылки на все файлы внутри. Picture shows where to click the Folder icon in File inspector

  • В Xcode в Навигаторе проектов щелкните имя проекта ProjAbc и переименуйте его в ProjDef.

    • Вам будет предложено: "Переименовать элементы контента проекта?". Нажмите кнопку "Переименовать".
    • Вам будет предложено: "Хочешь, чтобы Xcode выполнял автоматические снимки перед переименованием проекта и аналогичными операциями?". Нажмите "Отключить" или "Включить". Это не имеет значения.
  • В Xcode теперь откройте "Настройки сборки" внутри цели ProjDef (внутри Project ProjDef в Project Navigator). Переименуйте как имя папки, так и имя файла обоих файлов * -Info.plist и * -Prefix.pch, чтобы содержать ProjDef вместо ProjAbc.

  • В Xcode в Навигаторе проектов в папке виртуальных источников ProjDef в разделе "Поддержка файлов" также снова переименуйте оба файла * -Info.plist и * -Prefix.pch, чтобы содержать ProjDef вместо ProjAbc

  • В меню Xcode нажмите Product/Scheme/Manage Schemes... (или нажмите "ProjAbc" > "Название схемы" в "Схеме" в левой верхней части Xcode и нажмите "Управление схемами..." ) и в диалоговое окно переименует Scheme из ProjAbc в ProjDef, затем нажмите кнопку "ОК". Если имя проекта составлено из одного слова, вы можете запустить его прямо сейчас!

  • В Xcode отредактируйте верхнюю строку комментария в файле Supporting Files/* - Prefix.pch и замените ProjAbc на ProjDef (2 раза). Конечно, исправление этого комментария необязательно.

  • Выйти из Xcode.

  • В Finder укажите ProjDef.xcodeproj и откройте его в текстовом редакторе. (Либо откройте его в TextWrangler.app, либо щелкните правой кнопкой мыши и во всплывающем меню нажмите "Показать содержимое пакета", затем отредактируйте файл project.pbxproj в TextEdit.app)

  • В текстовом редакторе найдите "ProjAbc" (целое слово, пример соответствия), который должен появиться один раз (в параграфе:/* Начать раздел PBXNativeTarget */in line: productName = ProjAbc;) и заменить его на "ProjDef". Действительно, проект может работать в любом случае!, поэтому этот шаг является необязательным.

  • если имя проекта состоит из двух или более отдельных слов, таких как "ProjDef Geh", тогда вы ДОЛЖНЫ выполнить следующие шаги: Найдите ссылку в папку Finder папки виртуальных исходных файлов -

    • Найдите строку: path = ProjDef Geh;
    • Он появится один раз, в пункте /* ProjDef Geh */
    • Заменить его по строке: path = "ProjDef Geh";
  • Сохранить из текстового редактора и выйти из текстового редактора.

  • Что это. Как указано выше, если имя проекта составлено из одного слова, вы можете запустить его прямо в конце шага 11.

Ответ 8

Я нашел, что приведенные ответы действительно полезны, особенно ответ Ник Локвуд.

Я просто переименовал пару папок в Xcode 8 и обнаружил еще две проблемы: A) "отсутствует при ошибках рабочей копии" B) Сбой данных ядра.

Как решить эти две проблемы:

A) " отсутствует при ошибках рабочей копии"

Я нашел ответ ниже: Swift 3/Xcode 8 Upgrade - 100 файлов DerivedData, отсутствующих при ошибках рабочей копии

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

  • Чистые производные данные Xcode.
  • Перейдите в раздел "Контроль источника" и нажмите "Обновить статус".
  • Перейдите в раздел "Контроль источника" и нажмите "Зафиксировать"; выберите все файлы на левой боковой панели меню фиксации при совершении (щелкните правой кнопкой мыши → Выбрать все).
  • Вероятно, вы получите сообщение об ошибке.
  • Закройте меню Commit.
  • Обновить статус.
  • Закройте свой проект, исключив Xcode.
  • Повторно запустите свой проект, обновите статус, снова закрепите.
  • На этот раз фиксация должна работать.
  • Нажмите "Проект" → "Очистить".

Я предполагаю, что вы уже включили Source Control. Если вы этого не сделали, или если вы застряли после моих инструкций, просто следуйте более подробным инструкциям в приведенной ссылке.

B) Сбой данных ядра

Переименование папок иногда заворачивает основные данные. Существует несколько возможных причин, почему это так, и ниже приведены некоторые исправления, которые я могу предложить:

  • Неверное имя модели AppDelegate. Так было в моей ситуации. Перейдите в AppDelegate и найдите let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME"). Убедитесь, что имя верное.

    В будущем (через несколько лет после этого сообщения, когда Apple снова изменит Core Data), или если вы используете более старую версию Core Data, внимательно изучите AppDelegate. Там, вероятно, что-то фанк там, что возиться с вашими основными данными.

  • Неверное имя модели в xcdatamodeld. Перейдите в Finder и откройте свой .xcdatamodeld в текстовом редакторе.

Проверьте следующее:

<plist version="1.0">
  <dict>
     <key>_XCCurrentVersionName</key>
     <string>YOUR CORE DATA MODEL NAME.xcdatamodel</string>  <-- Make sure this is correct.
  </dict>
</plist>

Подробнее здесь: Файлы модели Core Data не загружаются при переименовании

  1. Если две вещи выше не работают, попробуйте: 1) удалить свою сущность, а затем добавить другую сущность, идентичную или 2) удалить xcdatamodeld, а затем добавить другую модель данных, которая идентична (и убедитесь, что имя новый xcdatamodeld соответствует тому, что находится в вашем AppDelegate и остальной части вашего кода). Никогда не делайте этого с помощью Live App - или если вы это сделаете, убедитесь, что вы правильно перенести свои основные данные во время этого.

Ответ 9

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

  • Проект Dublicate из исходного проекта
  • Переименуйте исходную папку исходного проекта, которая нарушает контрольную проблему.
  • В dublicate proejct все идет красным, выберите свою текущую папку проекта. (скриншот показывает в зеленом ответе от stackoverflow)

=============================================== =========================