Відповіді:
Ця відповідь є кульмінацією різноманітних інших публікацій StackOverflow та навчальних посібників в Інтернеті, приведених в одне місце для моєї подальшої довідки та для того, щоб допомогти іншим, хто може зіткнутися з тією ж проблемою. Всі кредити надаються за інші відповіді наприкінці.
У Finder скопіюйте папку проекту у потрібне місце нового проекту. На цьому етапі не перейменуйте ім'я файлу .xcodeproj або будь-які пов'язані з цим папки.
У Xcode перейменуйте проект. Виберіть проект із панелі навігатора (ліва панель). На панелі «Утиліти» (права панель) перейменуйте проект, прийміть зміни, які пропонує Xcode.
У Xcode перейменуйте схеми в "Керувати схемами", а також перейменуйте будь-які цілі, які у вас можуть бути.
Якщо ви не використовуєте ідентифікатор групи за замовчуванням, який містить поточний PRODUCT_NAME в кінці (тому оновиться автоматично), то змініть свій ідентифікатор групи на новий, який ви будете використовувати для свого дублірованного проекту.
Отже, виконуючи вищезазначені дії, у вас повинен бути продубльований і перейменований проект Xcode, який повинен скластись і скласти успішно, однак папка вихідного коду все одно буде називатися такою, якою вона була в оригінальному проекті. Це не спричиняє жодних проблем із компілятором, але це не найяскравіша структура файлів, щоб люди могли переходити до SCM тощо. Щоб перейменувати цю папку, не порушуючи всіх посилань на файли, виконайте наступні дії:
У Finder перейменуйте папку-джерело. Це порушить ваш проект, оскільки Xcode автоматично не виявить зміни. Усі ваші списки файлів xcode втратять посилання на фактичні файли, тому всі стануть червоними.
У Xcode натисніть на віртуальну папку, яку ви перейменували (це, ймовірно, буде вгорі, саме під вашим фактичним .xcodeproject) Перейменуйте це, щоб відповідати імені в Finder, це нічого не виправить і суворо не є необхідний крок, але приємно, щоб імена файлів відповідали.
У Xcode виберіть папку, яку ви перейменували на панелі навігації. Потім на панелі «Утиліти» (крайній правий край) клацніть піктограму, що нагадує темно-сіру папку, прямо під спальним меню «Місцезнаходження». Звідси перейдіть до перейменованої папки у пошуку і натисніть «Вибрати». Це автоматично відновить всі ваші файли, і вони більше не повинні з’являтися червоними в навігаційній панелі Xcode.
У налаштуваннях побудови проекту / цілей знайдіть стару назву папки та перейменуйте вручну всі події, які ви знайдете. Зазвичай є одна для prefix.pch та одна для info.plist, але їх може бути більше.
Якщо ви використовуєте будь-які сторонні бібліотеки (Testflight / Hockeyapp / тощо), вам також потрібно буде знайти "Шляхи пошуку бібліотеки" та перейменувати будь-які випадки старого імені файлу і тут.
Повторіть цей процес для будь-яких папок тестового коду одиничного тесту, які може містити ваш проект, процес ідентичний.
Це повинно дозволяти дублювати та перейменовувати проект xcode та всі пов’язані з ним файли без необхідності вручну редагувати будь-які файли xcode та ризикувати зіпсувати речі.
Велика подяка віддається Ніку Локвуду та Полі Глотту за надання окремих відповідей на цю проблему.
*.xcodeproj/project.pbxproj
файлу було багато речей, які містили вихідний шлях до папки. Зокрема, збірка не вдалася, оскільки вона постійно шукала info.plist у вихідній папці.
Я публікую це, оскільки завжди намагався перейменувати проект XCode
.
Перейменування проекту добре і просто, але це не перейменовує вихідну папку. Ось крок за кроком того, що я зробив, що працював чудово в Xcode 4 і 5 завдяки посиланням нижче.
Посилання REF:
Перейменування проекту.
Перейменуйте папку з джерелом та інші файли.
1- Створіть резервну копію проекту.
Якщо ви використовуєте git, виконайте будь-які зміни, зробіть копію всієї папки проекту та резервного копіювання у машині часу, перш ніж вносити будь-які зміни (цей крок не потрібно, але я дуже рекомендую).
2- Відкрийте свій проект.
3- Повільно двічі клацніть або натисніть Enter на назві проекту (синій верхній значок) та перейменуйте його на все, що вам подобається.
ПРИМІТКА: Після перейменування проекту та натискання кнопки «Enter» він запропонує автоматично змінити всі записи, пов’язані з іменем проекту, і дозволить вам відмінити деякі з них, якщо ви хочете. Виберіть їх і натисніть кнопку ОК.
4- Перейменуйте схему
a) Клацніть меню прямо біля кнопки зупинки та виберіть Керувати схемами.
b) Одноразовим натисканням клавіші або натисніть клавішу Enter на старій схемі імен та перейменуйте її на все, що завгодно.
в) Натисніть кнопку ОК.
5 - Створіть і запустіть, щоб переконатися, що він працює.
ПРИМІТКИ. На даний момент усі важливі файли проекту слід перейменовувати, за винятком коментарів до класів, створених під час створення проекту, ні вихідної папки. Далі ми будемо перейменовувати папку у файловій системі.
6- Закрийте проект.
7- Перейменуйте головну та вихідну папку.
8- Клацніть правою кнопкою миші .xcodeproj
файл пакета проекту та виберіть у контекстному меню пункт «Показати зміст пакета». Відкрийте файл .pbxproj за допомогою будь-якого текстового редактора.
9- Знайдіть і замініть будь-яке виникнення оригінального імені папки новим іменем папки.
10- Збережіть файл.
11- Відкрийте проект XCode, протестуйте його.
12- Готово.
Існує інструмент для перейменування проектів у Xcode. Я ще не намагався його досить коментувати. https://github.com/appculture/xcode-project-renamer
Станом на 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
Я використовую цей сценарій після перейменування свого iOS Project. Це допомагає змінити ім'я каталогів та синхронізувати назви.
ПРИМІТКА. Вам потрібно буде вручну змінити назву схеми.
У прикладі коду книги "Миттєвий 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>
працює чудово.
Додаткову інформацію можна знайти при відкритті файлу за допомогою текстового редактора. Сподіваюся, що це допомагає
Я використовую Xcode 6+ і просто роблю:
*.xcodeproj or *.xcworkspace
Тут зроблено, але назва вікна Xcode і *.xcodeproj or *.xcworkspace
досі <old-name>
. Тоді я роблю:
pop install
<new name>.xcworkspace
Ще одне, що потрібно спробувати!
Коли я скопіював усі свої файли, відкрив проект та перейменував його, усе змінилося на мою нову назву проекту, крім тестової цілі! У мене з’явилася помилка лінкера, яка сказала, що мені не вистачає файлу під назвою "myOldProjectname.app". Ось що це виправило:
Клацніть на налаштуваннях проекту та виберіть тестову ціль
Клацніть на налаштуваннях збірки та знайдіть "тестовий хост"
Перевірте ці 2 файлові контури. Цілком ймовірно, що ці 2 шляхи все ще вказують на вашу стару назву проекту.
Сподіваюся, що це допомагає!
Для тих, хто має інші проблеми з збоями в раскадровці після копіювання проекту, перейдіть до Main.storyboard в розділі Інспектор ідентичності.
Далі переконайтеся, що ваш поточний модуль є правильним перейменованим модулем, а не старим.
Я використовую простий сценарій BASH для перейменування.
Використання: ./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}"
Примітки:
.git
і.DS_Store