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

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

Ответ 1

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

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

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

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

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

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

  • /p >

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

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

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

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

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

Icon to click

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

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

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

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

Кредиты

Большое спасибо Nick Lockwood и Pauly Glott за предоставление отдельных ответов на эту проблему.

Ответ 2

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

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

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

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

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

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

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

ПРИМЕЧАНИЕ.. После того как вы переименуете проект и нажмите "Enter", предлагается автоматически изменять все записи, связанные с именем проекта, и позволит вам отменить выбор некоторых из них, если хотите. Выберите все их и нажмите "ОК".

4- Переименуйте схему

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

b) Однократное нажатие или нажатие введите старую схему имен и переименуйте ее в любое удобное для вас время.

c) Нажмите "ОК".

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

ПРИМЕЧАНИЯ:. На этом этапе все важные файлы проекта должны быть переименованы за исключением комментариев в классах, созданных при создании проекта была создана или исходная папка. Затем мы переименуем папку в файловой системы.

6- Закройте проект.

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

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

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

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

11- Откройте проект XCode, проверьте его.

12-Готово.

Ответ 4

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

http://github.com/ytbryan/rename

ПРИМЕЧАНИЕ. вам нужно будет вручную изменить название схемы.

Ответ 5

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

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

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

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

Ответ 6

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

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

  • Нажмите на настройки своего проекта и выберите целевую аудиторию enter image description here

  • Нажмите на настройку сборки и выполните поиск "test host" enter image description here

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

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

Ответ 7

Для кого-либо, у кого возникли проблемы с сбоями в раскадровке после копирования вашего проекта, перейдите к Main.storyboard в разделе Identity Inspector.

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

Ответ 8

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

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

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

Ответ 9

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

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

#!/bin/sh

OLDNAME=$1
NEWNAME=$2

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}"

Примечания:

  • Этот script будет игнорировать все файлы, такие как .git и .DS_Store
  • Не работает, если старое имя/новое имя содержит пробелы.
  • Может не работать, если вы используете контейнеры (не тестировались).
  • Название схемы не будет изменено (в любом случае проект выполняется и компилируется в обычном режиме)