Переименование проекта xcode 4 и самой папки - PullRequest
119 голосов
/ 25 ноября 2011

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

Ответы [ 9 ]

259 голосов
/ 13 мая 2013

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

Вот как:

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

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

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

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

Все готово!

enter image description here

РЕДАКТИРОВАТЬ: эта опция все еще есть в Xcode 5, но по умолчанию скрытно.Чтобы показать его, щелкните тонкий заголовок «Идентификация и тип» в инспекторе над панелью «Параметры текста», чтобы развернуть его.

112 голосов
/ 01 декабря 2011

Я делал это десятки раз:

  • Переименуйте проект, нажав, затем отредактировав заголовок в вашем навигаторе проекта Xcode.
  • Закройте Xcode.
  • Переименуйте исходную папку.
  • В Finder откройте файл .pbxproj внутри комплекта проекта (контекстное меню «Показать содержимое пакета») в любом текстовом редакторе.
  • Поиск и замена любого вхождения исходного имени папки новым именем папки.
  • Сохраните файл.
  • Открыть проект Xcode.
12 голосов
/ 14 сентября 2012

Задача: Переименуйте «Play» в «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
  • Найдите и замените все «Play» на «Play2». Чтобы гарантировать, что все идет правильно, нажмите стрелку в левом конце панели поиска и измените атрибут поиска. Измените «Содержит» на «Полное слово» и снимите флажок «Игнорировать регистр»
  • Сохранить файл .pbxproj
  • Откройте проект Xcode и запустите
4 голосов
/ 16 мая 2012

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

  1. Закройте все открытые проекты полностью в XCode, чтобы избежать проблем
  2. Скопируйте проект ввопрос к новой папке (ВАЖНО: СОХРАНИТЕ РЕЗЕРВНОЕ КОПИРОВАНИЕ ВАШЕГО ПРОЕКТА)
  3. Откройте проект
  4. Переименуйте сам проект в XCode4 (дважды щелкните имя проекта), измените имя ивыполните шаги (да ко всему)
  5. Перейдите к продукту, управляйте схемами и переименуйте схему (дважды щелкните по имени схемы)
  6. Закройте ваш проект (убедитесь, что он полностью закрыт, иначе следующийшаги не будут работать)
  7. В Finder перейдите в папку Project и щелкните правой кнопкой мыши файл .xcodeproj, затем выберите параметр «Показать содержимое пакета»
  8. Затем щелкните правой кнопкой мыши файл .pbxprojи откройте его с помощью TextEdit
  9. Замените все вхождения имени папки, где использовались проекты (старое имя проекта для нового имени проекта)
  10. Сохраните файл
  11. Снова откройте проект и постройте его!
2 голосов
/ 29 сентября 2013

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

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

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

  3. В Finder свободно переименуйте папку ABOVE ProjAbc.xcodeproj, если считаете, что она вам подходит для нового имени проекта.

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

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

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

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

  8. В Xcode, в Project Navigator, щелкните по имени проекта ProjAbc и переименуйте его в ProjDef.

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

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

  11. В меню Xcode нажмите Product / Scheme /Управление схемами ... (или нажмите «ProjAbc»> «Имя схемы» на панели схем в левой верхней части XCode и нажмите «Управление схемами ...») и в диалоговом окне переименуйте схему из ProjAbc в ProjDef, затем нажмите «OK»кнопка.Если имя проекта состоит из одного слова, вы можете запустить его прямо сейчас!

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

  13. Выход Xcode.

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

  15. В текстовом редакторе найдите «ProjAbc» (все слово, регистр совпадений), которое должно появиться один раз (в абзаце: / * Начать раздел PBXNativeTarget * / в строке: productName = ProjAbc;) и замените его на «ProjDef».В самом деле, проект может быть запущен в любом случае!

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

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

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

2 голосов
/ 30 января 2013

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

path = FooBar

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

path = "Foo Bar"

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

2 голосов
/ 25 ноября 2011

Прежде всего - не переименовывайте проект XCode !!!

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

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

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

0 голосов
/ 30 июня 2017

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

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

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

0 голосов
/ 30 октября 2016

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

Я только что переименовал пару папок в Xcode 8 и столкнулся с еще двумя проблемами: A) "отсутствует из-за ошибок рабочей копии" B) Сбои Core Data .

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

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

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

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

  1. Очистить производные от Xcode данные.
  2. Перейти к Source Control и нажать «Обновить состояние».
  3. Перейти к Source Control и нажать «Commit»;при фиксации выберите все файлы на левой боковой панели меню фиксации (щелкните правой кнопкой мыши -> Выбрать все).
  4. Возможно, вы получите сообщение об ошибке.
  5. Закройте меню фиксации.
  6. Обновить статус.
  7. Закройте ваш проект, выйдя из Xcode.
  8. Повторно откройте ваш проект, обновите статус, подтвердите снова.
  9. На этот раз фиксация должна работать.
  10. Нажмите Project -> Clean.

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

B) Сбой основных данных

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

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

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

  2. Неверное название модели в 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) удалить вашу сущность, а затем добавить другую идентичную сущность или 2) удалить вашу xcdatamodeld, а затем добавить другую модель данных, которая идентична (и убедитесь, что имяnew xcdatamodeld соответствует тому, что находится в вашем AppDelegate и остальной части вашего кода). Никогда не делайте этого с работающим приложением - или, если вы делаете это, убедитесь, что при этом правильно перенесли свои базовые данные.
...