Дублирование и переименование проекта Xcode и связанных с ним папок


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

9 179

9 ответов:

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

дублирование проекта Xcode

  • в Finder продублируйте папку проекта в нужное место вашего нового проекта. Не переименовывайте .имя файла xcodeproj или любое связанное с ним папки на этом этапе.

  • в Xcode переименуйте проект. Выберите проект на панели Навигатор (левая панель). На панели утилиты (правая панель) переименуйте свой проект, примите изменения, предложенные Xcode.

  • в Xcode переименуйте схемы в "Управление схемами", а также переименуйте любые цели, которые у вас могут быть.

  • Если вы не используете идентификатор пакета по умолчанию, который содержит текущее PRODUCT_NAME в конце (так будет обновить автоматически), затем измените идентификатор пакета на новый, который вы будете использовать для вашего дублированного проекта.

переименование исходной папки

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

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

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

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

Icon to click

  • в настройках сборки проекта / целей найдите старое имя папки и вручную переименуйте все найденные вхождения. Обычно есть один для префикса.ПЧ и один для информации.плист, но может быть и больше.

  • Если вы используете какую-либо третью сторону библиотеки (Testflight / Hockeyapp / etc) вам также нужно будет искать "пути поиска библиотеки" и переименовывать любые вхождения старого имени файла здесь тоже.

  • повторите этот процесс для любых папок исходного кода модульного теста, которые может содержать ваш проект, процесс идентичен.

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

кредиты

большое спасибо Ник Локвуд и Поли Глотт для предоставления отдельных ответов на эту проблему.

я публикую это, так как я всегда боролся при переименовании проекта в XCode.

переименование проекта хорошо и просто, но это не переименовывает исходную папку. Вот шаг за шагом то, что я сделал, что отлично работало в Xcode 4 и 5 благодаря ссылкам ниже.

реф ссылки:
Проект Переименовать.
переименовать исходную папку и другие файлы.

1 - резервное копирование проект.

Если вы используете git, зафиксируйте любые изменения, сделайте копию всей папки проекта и резервное копирование в time machine перед внесением каких-либо изменений (этот шаг не требуется, но я настоятельно рекомендую).

2 - Откройте свой проект.

3- медленно дважды щелкните или нажмите enter на имя проекта (синий значок сверху) и переименовать его в то, что вам нравится.

Примечание: после переименования проект и нажмите "enter" он предложит автоматически изменить все записи, связанные с именем проекта и позволит вам отменить выбор некоторых из них, если хотите. Выберите все из их и нажмите кнопку ОК.

4-переименовать схему

a) щелкните меню рядом с кнопкой стоп и выберите Управление схемами.

b) один медленный щелчок или нажмите enter на старой схеме имени и переименовать его в то, что вы как.

c) Нажмите кнопку ОК.

5 - построить и запустить, чтобы убедиться, что он работает.

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

6 - закрыть проект.

7 - переименовать основную и исходную папки.

8- щелкните правой кнопкой мыши на пакет проекта .xcodeproj "файл" и выберите "Показать содержимое пакета" из контекстного меню. Открывай .pbxproj файл с любым текстовым редактором.

9- поиск и замена любого вхождения исходного имени папки с новым именем папки.

10 - сохраните файл.

11 - открытые Проект XCode, протестируйте его.

12 - сделано.

с XCode 7 это стало намного проще.

компания Apple зафиксировали процесс на своем сайте: https://developer.apple.com/library/ios/recipes/xcode_help-project_editor/RenamingaProject/RenamingaProject.html

обновление: Xcode 8 ссылка: http://help.apple.com/xcode/mac/8.0/#/dev3db3afe4f

я использую Xcode 6+ и я просто делаю:

  • скопируйте все файлы в папках проекта в новые папки (с новым именем).
  • открыть *.xcodeproj or *.xcworkspace
  • изменить имя проекта.
  • нажмите на схему и удалите текущую chema и добавьте новую.

вот сделано, но имя окна Xcode и *.xcodeproj or *.xcworkspace еще <old-name>. Тогда я делаю:

  • pop install
  • открыть <new name>.xcworkspace

еще одна вещь, чтобы попробовать!

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

  1. нажмите на настройки проекта и выберите цель теста enter image description here

  2. нажмите на настройки сборки и поиска "тест хозяин" enter image description here

  3. проверьте эти 2 пути к файлам. Скорее всего, эти 2 пути все еще указывают на ваше старое имя проекта. enter image description here

надеюсь, что это поможет!

Я использую этот скрипт после переименовать мой проект iOS. Это помогает изменить имя каталогов и сделать имена в синхронизации.

http://github.com/ytbryan/rename

Примечание: вам нужно будет вручную изменить имя схемы.

для тех, кто еще имеет проблемы с раскадровкой сбоев после копирования вашего проекта, перейдите к Main.раскадровка под Identity Inspector.

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

в примере кода для книги "мгновенный OpenCV для iOS" Я нашел скрипт bash, который копирует проект из папки в другую.
Проведя небольшое исследование, я нашел сообщение в блоге от того, что кажется оригинальным автором сценария:http://mohrt.blogspot.it/2009/01/renaming-xcode-project-from-command.html, где вы можете скачать скрипт. Я дал ему попробовать и запустить его из терминала, как это

    sh renameXcodeProject.sh <name-of-existing-folder> <name-of-folder-to-create>   

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

Я использую простой скрипт BASH для переименования.

использование: ./rename.sh oldName newName

#!/bin/sh

OLDNAME=
NEWNAME=

export LC_CTYPE=C 
export LANG=C
find . -type f ! -path ".*/.*" -exec sed -i '' -e "s/${OLDNAME}/${NEWNAME}/g" {} +

mv "${OLDNAME}.xcodeproj" "${NEWNAME}.xcodeproj"
mv "${OLDNAME}" "${NEWNAME}"

Примечания:

  1. этот скрипт будет игнорировать все файлы, такие как .git и .DS_Store
  2. не будет работать, если старое имя / новое имя содержит пробелы
  3. может не работать, если вы используете чалды (не проверял)
  4. имя схемы не будет изменено (в любом случае проект работает и компилируется нормально)