Як я повністю перейменую проект Xcode (тобто включаючи папки)?


470

У мене є проект на ім'я XXX. Я хочу перейменувати цей проект у YYY.

Зауважте, що XXXце надзвичайно поширений термін (наприклад, "дані" або просто "проект"), і, отже, простий пошук і заміна RegEx неможливий через ризик пошкодження файлів конфігурації проекту.

Мій поточний каталог проектів містить такі елементи:

  • XXX
  • XXXTests
  • XXX.xcodeproj

і я хочу перейменувати їх на:

  • YYY
  • YYYTests
  • YYY.xcodeproj

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

Як я можу досягти цього, не вручну створюючи та заповнюючи новий проект?


Правка: Абсолютно смішно, що це стало моїм найбільш актуальним питанням.


Можливий дублікат проекту Rename xcode
Рон

1
Також тут запитували та відповіли stackoverflow.com/questions/17744319/… із 200 голосами за відповідь
Рон Мищук

1
також запитав і відповів тут stackoverflow.com/questions/8262613/…, набравши 189 голосів, обидва повідомлення все ще актуальні в Xcode 7
Рон Мищук

Якщо ви просто хочете перейменувати значок програми, перевірити цей відповідь stackoverflow.com/questions/238980 / ...
Лью

Відповіді:


1019

Крок 1 - Перейменуйте проект

  1. Клацніть на проект, який потрібно перейменувати, у «Навігаторі проектів» на панелі ліворуч у вікні Xcode.
  2. На правій панелі виберіть "Інспектор файлів", а назву вашого проекту слід знайти у розділі "Ідентифікація та тип". Змініть його на нове ім’я.
  3. Коли діалогове вікно запитає, чи потрібно перейменовувати чи не перейменувати елементи вмісту проекту, натисніть «Перейменувати».

Крок 2 - Перейменуйте схему

  1. У верхній частині вікна, поруч із кнопкою «Зупинити», є схема вашого товару під його старою назвою; натисніть на нього, а потім виберіть "Керувати схемами ...".
  2. Натисніть на стару назву в схемі, і вона стане редагованою; змінити ім’я та натиснути «Закрити».

Крок 3 - Перейменуйте папку зі своїми активами

  1. Закрити Xcode.
  2. У правильно названій головній папці є нещодавно названий файл .xcodeproj з неправильно названою папкою OLD. Перейменуйте папку OLD на нове ім’я (якщо ви використовуєте Git, ви можете запустити git mv oldname newnameтак, що Git визнає, що це крок, а не видалення / додавання нових файлів).
  3. Повторно відкрийте проект у Xcode, і ви побачите попередження "Папка OLD не існує"; відхилити попередження.
  4. У «Навігаторі проектів» на панелі ліворуч натисніть папку СТАРИ верхнього рівня.
  5. На панелі праворуч у розділі "Ідентифікація та тип" змініть поле "Ім'я" з назви СТАРИЙ на нове ім'я.
  6. Трохи під цим полем розташоване меню "Місцезнаходження". Клацніть піктограму папки, що перебуває поблизу, і виберіть перейменовану папку.

Крок 4 - Перейменуйте дані збирання списку

  1. Клацніть на проект у «Навігаторі проектів» зліва, а на головній панелі виберіть «Налаштування параметрів».
  2. Шукайте "налаштування" в налаштуваннях.
  3. У розділі Упаковка ви побачите Info.plistта Product Bundle Identifier.
  4. Якщо введено ім’я Info.plist, оновіть його.
  5. Зробіть те ж саме для Product Bundle Identifier.
  6. Якщо ви використовуєте SwiftUI, знайдіть "Активи активізації" та оновіть шлях.

Крок 5 - Повторіть крок 3 для тестів (якщо у вас є)

Крок 6 - Повторіть крок 3 для основних даних, якщо його назва відповідає назві проекту (якщо у вас є)

Крок 7 - Відновіть свій проект

  1. Command+ Shift+ Kчистити
  2. Command+ Bбудувати

5
Ви можете змінити назву проекту, але назви папок все одно однакові. Чи знаєте ви, як їх змінити
Coder221

5
Дякую! для Xcode 8 файл прав повинен бути перейменований вручну.
Цзюлун Чжао

54
Виконуючи крок 3, частина 2 (перейменування папки), якщо ви використовуєте git, я рекомендую git mv oldname newnameтаким чином git визнає, що це був крок, а не видалення та додавання всіх ваших файлів.
Аарон Еш

14
ідеально, відмінно працює в Xcode 8.2, лише одне, що слід зазначити тут під час редагування схеми, якщо натискання назви схеми один раз не зробить її редагованою, тоді виберіть схему та натисніть клавішу повернення, це зробить назву схеми редагованою.
Хурам Шехзад

5
Не забудьте знайти та замінити інші екземпляри старої назви проекту.
Дерек Сойке

194

Щоб додати до відмінної відповіді @ luke-west:

При використанні CocoaPods

Після кроку 2:

  1. Закрити XCode.
  2. У головній папці перейменуйте OLD.xcworkspaceна NEW.xcworkspace.

Після кроку 4:

  1. У XCode: виберіть та відредагуйте Podfileу навігаторі проекту. Ви повинні побачити targetпункт із іменем СТАРИЙ. Змініть його на NEW.
  2. Закрити XCode.
  3. У папці проекту видаліть OLD.podspecфайл.
  4. rm -rf Pods/
  5. Біжи pod install.
  6. Відкрийте XCode.
  7. Клацніть на назві проекту в навігаторі проекту.
  8. На головній панелі перейдіть на Build Phasesвкладку.
  9. Під Link Binary With Libraries, шукайте libPods-OLD.aта видаляйте його.
  10. Якщо у вас є заголовок Bridging-Objective-c, перейдіть до налаштувань Build і змініть розташування заголовка з OLD / OLD-Bridging-Header.h на NEW / NEW-Bridging-Header.h
  11. Очистіть і запустіть.

7
За допомогою Xcode 8.3.2 мені довелося використовувати cocoapods-deintegrate та перевстановити всі стручки для запуску проекту з новою назвою.
SteffenK

2
@SteffenK Чи існує різниця між цим методом та rm -rf Pods /? Враховуючи, що ви зробили всі інші кроки?
Вайден

1
Ви б хотіли детальніше розглянути? Які сліди?
Вайден

2
@Vaiden дякую тобі за додаткову чіткість при роботі з CocoaPods! Цей процес створив другу посилання, що було дивно, але після його видалення все працювало ідеально! Знову дякую! :)
Метт Свіфт

4
Може хтось скаже мені, де я можу знайти файл OLD.podspec, який згадується у цій відповіді? У своєму проекті я отримав кілька файлів на кшталт 'Podfile' / 'Podfile.lock' / 'Pods.xcodeproj', і я отримав порожню папку з назвою "Local Podspecs", але я не можу знайти .podspec файл
codeDude

51

Швидше рішення за допомогою команд оболонки (працює і з CocoaPods):

БУДЬ ЛАСКА cdдо НЕ ГИТ СКЛАД перед початком ⚠️

Крок 1 - Передумови

  1. Скопіюйте оригінальну папку проекту у тимчасовий /NewProjectFolder зовнішній сховище git. ⚠️ зміни в .git можуть пошкодити ваш індекс git 💥 ☠

Крок 2 - Відкрийте термінал

Тепер ми будемо перейменовувати проект з oldNameу NewProject.

  • Закрити XCode.
  • Перейдіть до свого /NewProjectFolder.
cd /Path/to/your/NewProjectFolder
  • Встановіть потрібні додаткові інструменти.
brew install rename ack
  • Перейменуйте файли та каталоги, що містять вихідний рядок. Вам потрібно буде РОЗВИТКУВАТИ ЦУ КОМАНДУ ДВІ , оскільки спочатку будуть перейменовані каталоги, потім файли та каталоги всередині них будуть перейменовані на наступну ітерацію.
find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'NewProject'
  • Перевірте, чи перейменовані всі файли, що містять вихідний рядок. Ви повинні побачити порожній вихід.
find . -name 'oldName*'
  • Замініть всі зустрічі рядка у всіх файлах.
ack --literal --files-with-matches 'oldName' --print0 | xargs -0 sed -i '' 's/oldName/NewProject/g'
  • Перевірте, чи були замінені всі входження рядка у всіх файлах. Ви повинні побачити порожній вихід.
ack --literal 'oldName'
  • Біжи pod install
  • Додайте NewProjectFolderдо свого сховища.
  • Ви закінчили!

3
Дякую за це, я вважав це корисним. Копіюючи та вставляючи такі команди, я віддаю перевагу, якщо роботу можна звести до мінімуму, тому приклад імені "YourNewAmazingProjectName" є надмірним, просто використовуйте "example", оскільки це продовжує термін мого ключа видалення.
LpLrich

1
@LpLrich дякую за вашу пропозицію, я щойно оновив свою відповідь.
П'єтро Бассо

Основну папку було перейменовано, але я не бачу жодних інших каталогів чи файлів, перейменованих, будь-яких пропозицій?
Етан Паркер

2
@EthanParker потрібно запустити find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'ExampleName'двічі, файли та каталоги всередині основних папок будуть перейменовані на другу ітерацію.
П'єтро Бассо

1
Я використовував coreData у своєму проекті, і мені довелося запускати цю команду не двічі, а три рази.
ShadeToD

21

Існує проект GitHub, який називається Xcode Project Renamer:

Він повинен бути виконаний з внутрішнього кореня каталогу проектів Xcode та викликаний з двома рядковими параметрами: $ OLD_PROJECT_NAME та $ NEW_PROJECT_NAME

Сценарій проходить через усі файли та каталоги рекурсивно, включаючи проект Xcode або файл робочої області і замінює всі входження рядка $ OLD_PROJECT_NAME на рядок $ NEW_PROJECT_NAME (як у назві, так і в кожному файлі).

НЕ ЗАБУДУЙТЕ ЗАБЕЗПЕЧАТИ ВАШ ПРОЕКТ!

Xcode Project Renamer


Це не корисно для початківців. Все, що він робить, - це пошкоджує мій головний файл проекту, також він не видаляє скрипт, використовуючи команди нижче, я закінчую марним часом. $ rm rename.swift
Пітер Уолтер

Будь ласка, не слідкуйте за ярликами.
Пітер Уолтер

6
@ peter-walter, ви завжди повинні робити резервну копію своїх даних перед такими операціями.
Олкай Ерташ

Це спрацювало як шарм. Єдине, чого бракує, це те, що потрібно запустити pod installпісля запуску сценарію.
romin21

11

XCode 11.0+.

Зараз це дуже просто. Просто зайдітьProject Navigator ліву панель вікна XCode.
Натисніть, Enterщоб активувати його для перейменування, як і ви змінюєте ім'я папки.
введіть тут опис зображення

Просто змініть тут нову назву, і XCode попросить вас перейменувати інші матеріали.

введіть тут опис зображення.

Натисніть Renameтут, і ви закінчите.
Якщо ви плутаєтеся з назвою вашої кореневої папки, тому це не змінюється, це просто папка. просто перейменували його на нову назву.
введіть тут опис зображення


7

Змінити назву проекту;

  1. Виберіть проект у навігаторі проектів.

2. У розділі Ідентифікація та тип інспектора файлів введіть нове ім’я в поле Ім'я.

3.Прес повернення.

Відобразиться діалогове вікно з переліком елементів у вашому проекті, які можна перейменувати. Діалогове вікно включає попередній перегляд того, як елементи з'являться після зміни.

  1. Щоб вибірково перейменувати елементи, зніміть прапорці для будь-яких елементів, які не хочете перейменовувати. Щоб перейменувати лише ваш додаток, залиште додаток вибраним і зніміть позначку з усіх інших елементів.

  2. Натисніть "Перейменувати"


5

Додаткові інструкції при дотриманні рішень @ Luke-West + @ Vaiden:

  • Якщо ваша схема не змінилася (все ще відображається мій мак) у верхньому лівому куті поруч із кнопкою зупинки:

    1. Клацніть НОВО створене ім'я проекту (поруч із кнопкою зупинки)> Клацніть Редагувати схеми> Збірка (ліва частина)> Видаліть стару ціль (скаже, що вона відсутня) та замініть НОВО назване проектом під НОВОМУ названому логотипі проекту

Крім того, мені не довелося використовувати крок 3 рішення @ Vaiden. Тільки що запустившись rm -rf Pods/у терміналі позбувся всіх старих файлів файлів

Мені також не довелося використовувати крок 9 у рішенні @ Vaiden, натомість я просто видалив проект OLD, названий фреймворк у Link Binary Libraries (НОВО названа рамка вже була)

Тож оновлені кроки були б такими:

Крок 1 - Перейменуйте проект

  1. Якщо ви використовуєте cocoapods у своєму проекті, закрийте робочу область та відкрийте проект XCode для цих кроків.
  2. Клацніть на проект, який потрібно перейменувати, у «Навігаторі проектів» зліва від подання Xcode.
  3. Праворуч виберіть "Інспектор файлів", а ім'я вашого проекту повинно бути там у розділі "Ідентифікація та тип", змініть його на нове ім'я.
  4. У спадному меню натисніть кнопку "Перейменувати"

Крок 2 - Перейменуйте схему

  1. У верхній смузі (біля кнопки "Зупинити") є схема для вашого СТАРОГО продукту, натисніть на нього, потім перейдіть до "Керування схемами"
  2. Клацніть на імені СТАРИЙ у схемі, і воно стане редагованим, змініть ім'я
  3. Закрити XCode.
  4. У головній папці перейменуйте OLD.xcworkspace на NEW.xcworkspace.

Крок 3 - Перейменуйте папку зі своїми активами

  1. Закрити Xcode
  2. У правильно названій головній папці є нещодавно названий файл xcodeproj з неправильно названою папкою OLD. Перейменуйте папку OLD на нове ім’я
  3. Повторно відкривши проект, ви побачите попередження: "Папка OLD не існує", відхиліть попередження
  4. У «Навігаторі проектів» зліва натисніть назву папки верхнього рівня СТАРИЙ
  5. На панелі "Утиліти" в розділі "Ідентифікація та тип" ви побачите запис "Ім'я", змініть це з "СТАРОГО" на нове ім'я
  6. Трохи нижче є запис "Місцезнаходження". Клацніть папку з іменем СТАРИЙ та виберіть нещодавно перейменовану папку

Крок 4 - Перейменуйте дані збирання списку

  1. Клацніть на проект у "Навігаторі проектів" зліва, на головній панелі виберіть "Налаштування параметрів"
  2. Шукайте "пліст" у цьому розділі Під упаковкою ви побачите Info.plist та ідентифікатор набору продуктів
  3. Перейменуйте верхній запис у Info.plist
  4. Зробіть те саме для ідентифікатора продукту

Крок 5 Обробка Podfile

  1. У XCode: виберіть та відредагуйте Podfile у навігаторі проекту. Ви повинні побачити цільовий пункт із іменем СТАРИЙ. Змініть його на NEW.
  2. Закрити XCode.
  3. У терміналі, cd в каталозі проекту, тоді: rm -rf Pods/
  4. Запустіть установку pod.
  5. Відкрийте XCode.
  6. Клацніть на назві проекту в навігаторі проекту.
  7. На головній панелі перейдіть на вкладку Фази збірки. У розділі Посилання Бінарні з бібліотеками шукайте СТАРУ рамку та видаліть її (слід сказати, що вона відсутня) НОВО названа рамка повинна бути вже там, якщо не використовувати кнопку "+" в нижній частині вікна, щоб додати її
  8. Якщо у вас є заголовок Bridging-Objective-c, перейдіть до налаштувань Build і змініть розташування заголовка з OLD / OLD-Bridging-Header.h на NEW / NEW-Bridging-Header.h
  9. Очистіть і запустіть.

Ви повинні мати можливість будувати без помилок після того, як ви успішно виконали всі кроки


2
На етапі 5.3 замість rm-rf Pods/більш чистого способу є запуск, pod deintegrateякий видаляє всі сліди CocoaPods з вашого проекту Xcode, але залишає ваш Podfile недоторканим.
jklapwyk

Це правила. Це послужило мені основою для злиття програми Ionic з існуючим додатком для iOS.
t4l

2

Окрім усіх кроків, які рекомендували Лука та Вайден, мені також довелося перейменувати всі властивості customModule в моїй дошці розкадрування, щоб відповідати новому імені, і це повинно бути чутливим до регістру.


1
єдина людина, яка коли-небудь згадувала про це!
Fattie

1
ПРИМІТКА. Ви можете зробити це в БІЗНЕС-БУДІВНИЦТВ, просто за допомогою "повторного клацання" на полі. Тоді він буде правильно "перевстановлений" для вашої нової назви проекту.
Fattie
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.