Jak całkowicie zmienić nazwę projektu Xcode (tj. Włącznie z folderami)?

470

Mam projekt o nazwie XXX. Chcę zmienić nazwę tego projektu na YYY.

Zauważ, że XXXjest to niezwykle powszechny termin (np. „Dane” lub po prostu „projekt”), a zatem proste wyszukiwanie i zamiana RegEx nie jest możliwe, ze względu na ryzyko uszkodzenia plików konfiguracyjnych projektu.

Mój aktualny katalog projektów zawiera następujące elementy:

  • XXX
  • XXXTests
  • XXX.xcodeproj

i chcę zmienić ich nazwę na:

  • YYY
  • YYYTests
  • YYY.xcodeproj

... odpowiednio, z niezbędnymi zmianami odzwierciedlonymi w moim pliku projektu.

Jak mogę to zrobić bez ręcznego tworzenia i wypełniania nowego projektu?


Edycja: To absurdalne, że stało się to moim najpopularniejszym pytaniem.

Vatsal Manot
źródło
Możliwy duplikat projektu Rename xcode
Ron Myschuk
1
Zapytano również i odpowiedziano tutaj stackoverflow.com/questions/17744319/... z 200 głosami w górę na odpowiedź
Ron Myschuk
1
również zapytał i odpowiedział tutaj stackoverflow.com/questions/8262613/... z 189 głosami w górę oba posty są nadal aktualne w Xcode 7
Ron Myschuk
Jeśli chcesz tylko zmienić nazwę nazwy ikony aplikacji, sprawdź tę odpowiedź stackoverflow.com/questions/238980/...
Luty

Odpowiedzi:

1019

Krok 1 - Zmień nazwę projektu

  1. Kliknij projekt, którego nazwę chcesz zmienić, w „Nawigatorze projektu” w lewym panelu okna Xcode.
  2. W prawym panelu wybierz „Inspektor plików”, a nazwa projektu powinna znajdować się w „Tożsamość i typ”. Zmień go na swoje nowe imię.
  3. Gdy w oknie dialogowym pojawi się pytanie, czy zmienić nazwę elementów treści projektu, czy nie, kliknij „Zmień nazwę”.

Krok 2 - Zmień nazwę schematu

  1. W górnej części okna, obok przycisku „Stop”, znajduje się schemat dla twojego produktu pod jego starą nazwą; kliknij go, a następnie wybierz „Zarządzaj schematami…”.
  2. Kliknij starą nazwę w schemacie, a będzie można ją edytować; zmień nazwę i kliknij „Zamknij”.

Krok 3 - Zmień nazwę folderu na swoje zasoby

  1. Zamknij Xcode.
  2. W prawidłowo nazwanym folderze głównym znajduje się nowo nazwany plik .xcodeproj z niepoprawnie nazwanym folderem OLD. Zmień nazwę folderu OLD na nową nazwę (jeśli używasz Git, możesz uruchomić git mv oldname newname, aby Git rozpoznał, że jest to ruch, zamiast usuwać / dodawać nowe pliki).
  3. Ponownie otwórz projekt w Xcode, a zobaczysz ostrzeżenie „Folder OLD nie istnieje”; odrzucić ostrzeżenie.
  4. W „Nawigatorze projektu” w panelu po lewej stronie kliknij folder OLD najwyższego poziomu.
  5. W prawym panelu, w obszarze „Tożsamość i typ”, zmień pole „Nazwa” ze STAREJ nazwy na nową nazwę.
  6. Tuż pod tym polem znajduje się menu „Lokalizacja”. Kliknij ikonę pobliskiego folderu i wybierz folder o zmienionej nazwie.

Krok 4 - Zmień nazwę danych listy kompilacji

  1. Kliknij projekt w „Nawigatorze projektu” po lewej stronie, aw panelu głównym wybierz „Ustawienia kompilacji”.
  2. Wyszukaj „plist” w ustawieniach.
  3. W sekcji Opakowania zobaczysz Info.plisti Product Bundle Identifier.
  4. Jeśli wprowadzono nazwę Info.plist, zaktualizuj ją.
  5. Zrób to samo dla Product Bundle Identifier.
  6. Jeśli używasz SwiftUI, wyszukaj „Zasoby programistyczne” i zaktualizuj ścieżkę.

Krok 5 - Powtórz krok 3 dla testów (jeśli je masz)

Krok 6 - Powtórz krok 3 dla podstawowych danych, jeśli jego nazwa odpowiada nazwie projektu (jeśli go posiadasz)

Krok 7 - Odbuduj swój projekt

  1. Command+ Shift+ Kdo czyszczenia
  2. Command+ Bdo budowy
Luke West
źródło
5
Możesz zmienić nazwę projektu, ale nazwy folderów są nadal takie same. Czy wiesz, jak je zmienić
Coder221
5
Dzięki! w przypadku Xcode 8 nazwa pliku uprawnień powinna zostać zmieniona ręcznie.
Jiulong Zhao
54
Jeśli korzystasz z kroku 3 część 2 (zmiana nazwy folderu), jeśli używasz git, polecam git mv oldname newnamew ten sposób git rozpozna, że ​​był to ruch, a nie usuwanie i dodawanie wszystkich plików.
Aaron Ash
14
idealnie, działa doskonale w Xcode 8.2, wystarczy tylko zwrócić uwagę na to podczas edycji schematu, jeśli kliknięcie nazwy schematu raz nie powoduje, że można go edytować, wybierz schemat i naciśnij klawisz powrotu, co umożliwi edycję nazwy schematu.
Khurram Shehzad
5
Nie zapomnij znaleźć i zastąpić innych wystąpień starej nazwy projektu.
Derek Soike,
194

Aby dodać do doskonałej odpowiedzi @ luke-west:

Podczas korzystania z CocoaPods

Po kroku 2:

  1. Wyjdź z XCode.
  2. W folderze głównym zmień nazwę OLD.xcworkspacena NEW.xcworkspace.

Po kroku 4:

  1. W XCode: wybierz i edytuj Podfilew nawigatorze projektu. Powinieneś zobaczyć targetklauzulę o STAREJ nazwie. Zmień na NOWY.
  2. Wyjdź z XCode.
  3. W folderze projektu usuń OLD.podspecplik.
  4. rm -rf Pods/
  5. Uruchom pod install.
  6. Otwórz XCode.
  7. Kliknij nazwę projektu w nawigatorze projektu.
  8. W głównym okienku przejdź do Build Phaseskarty.
  9. Poniżej Link Binary With Librarieswyszukaj libPods-OLD.ai usuń go.
  10. Jeśli masz nagłówek Bridging-c, przejdź do Ustawienia kompilacji i zmień lokalizację nagłówka z OLD / OLD-Bridging-Header.h na NEW / NEW-Bridging-Header.h
  11. Oczyść i uruchom.
Vaiden
źródło
7
Używając Xcode 8.3.2 musiałem użyć cocoapods-deintegrate i ponownie zainstalować wszystkie zasobniki, aby uruchomić projekt z nową nazwą.
SteffenK
2
@SteffenK czy istnieje różnica między tą metodą a rm -rf Pods /? Biorąc pod uwagę, że wykonałeś wszystkie pozostałe kroki?
Vaiden
1
Czy rozwinąłbyś proszę? Jakie ślady
Vaiden
2
@Vaiden bardzo dziękuję za dodatkową przejrzystość podczas pracy z CocoaPods! Proces utworzył drugie odniesienie, co było dziwne, ale po jego usunięciu wszystko działało idealnie! Dzięki jeszcze raz! :)
Matt Swift,
4
Czy ktoś mógłby mi powiedzieć, gdzie mogę znaleźć plik OLD.podspec wymieniony w tej odpowiedzi? W moim projekcie mam kilka plików, takich jak „Podfile” / „Podfile.lock” / „Pods.xcodeproj” i mam pusty folder o nazwie „Local Podspecs”, ale nie mogę znaleźć pliku
.podspec
51

Szybsze rozwiązanie za pomocą poleceń powłoki (działa również z CocoaPods):

PROSZĘ PRZECZYTAĆ cdW REPOZYTORIUM NIEGITOWYM ⚠️

Krok 1 - warunki wstępne

  1. Skopiuj oryginalny folder projektu do tymczasowego /NewProjectFolder ZEWNĘTRZNEGO repozytorium git. ⚠️ zmiany w .git mogą uszkodzić indeks git 💥 ☠

Krok 2 - Otwórz terminal

Teraz zmienimy nazwę projektu z oldNamena NewProject.

  • Zamknij XCode.
  • Idź do swojego /NewProjectFolder.
cd /Path/to/your/NewProjectFolder
  • Zainstaluj dodatkowe potrzebne narzędzia.
brew install rename ack
  • Zmień nazwę plików i katalogów zawierających ciąg źródłowy. Musisz URUCHOMIĆ TEN KOMENDĘ DWUKROTNIE , ponieważ nazwy katalogów zostaną zmienione w pierwszej kolejności, a następnie nazwy plików i katalogów w nich zawartych zostaną zmienione podczas następnej iteracji.
find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'NewProject'
  • Sprawdź, czy wszystkie pliki zawierające ciąg źródłowy zostały zmienione. Powinieneś zobaczyć puste wyjście.
find . -name 'oldName*'
  • Zamień wszystkie wystąpienia ciągu we wszystkich plikach.
ack --literal --files-with-matches 'oldName' --print0 | xargs -0 sed -i '' 's/oldName/NewProject/g'
  • Sprawdź, czy wszystkie wystąpienia ciągu we wszystkich plikach zostały zastąpione. Powinieneś zobaczyć puste wyjście.
ack --literal 'oldName'
  • Biegać pod install
  • Dodaj NewProjectFolderdo swojego repozytorium.
  • Gotowe!
Pietro Basso
źródło
3
Dzięki za to uznałem to za przydatne. Podczas kopiowania i wklejania takich poleceń wolę, aby można było zminimalizować pracę, więc przykładowa nazwa „YourNewAmazingProjectName” to przesada, po prostu użyj „przykład”, ponieważ przedłuża to żywotność mojego klawisza usuwania.
LpLrich
1
@LpLrich dziękuję za sugestię, właśnie zaktualizowałem swoją odpowiedź.
Pietro Basso
Nazwa folderu głównego została zmieniona, ale nie widzę innych katalogów ani plików, jakieś sugestie?
Ethan Parker,
2
@ EthanParker musisz uruchomić find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'ExampleName'dwa razy, pliki i katalogi w głównych folderach zostaną przemianowane podczas drugiej iteracji.
Pietro Basso,
1
Użyłem coreData w moim projekcie i musiałem uruchomić to polecenie nie dwa, ale trzy razy.
ShadeToD,
21

Istnieje projekt GitHub o nazwie Xcode Project Renamer:

Powinien zostać wykonany z katalogu głównego katalogu projektu Xcode i wywołany za pomocą dwóch parametrów ciągu: $ OLD_PROJECT_NAME i $ NEW_PROJECT_NAME

Skrypt rekursywnie przegląda wszystkie pliki i katalogi, w tym projekt Xcode lub plik obszaru roboczego i zastępuje wszystkie wystąpienia ciągu $ OLD_PROJECT_NAME ciągiem $ NEW_PROJECT_NAME (zarówno w nazwie, jak i treści każdego pliku).

NIE ZAPOMNIJ ZAPASOWAĆ SWOJEGO PROJEKTU!

Xcode Project Renamer

Olcay Ertaş
źródło
Nie jest to przydatne dla początkujących, tylko powoduje uszkodzenie mojego głównego pliku projektu, a także nie usuwa skryptu za pomocą poniższych poleceń, kończę marnowaniem czasu. $ rm rename.swift
Peter Walter
Nie używaj skrótów.
Peter Walter
6
@ peter-walter należy zawsze wykonać kopię zapasową danych przed takimi operacjami.
Olcay Ertaş
To działało jak urok. Brakuje tylko tego, że musisz uruchomić pod installpo uruchomieniu skryptu.
romin21
11

XCode 11.0+.

To jest teraz naprawdę proste. Wystarczy przejść do Project Navigatorlewego panelu okna XCode.
Naciśnij, Enteraby aktywować zmianę nazwy, tak jak zmieniasz nazwę folderu.
wprowadź opis zdjęcia tutaj

Po prostu zmień nową nazwę tutaj, a XCode poprosi cię o zmianę nazwy innych elementów.

wprowadź opis zdjęcia tutaj.

Stuknij Renametutaj i gotowe.
Jeśli masz wątpliwości co do nazwy folderu głównego, dlaczego nie została zmieniona, to po prostu folder. właśnie przemianowałem go na nową nazwę.
wprowadź opis zdjęcia tutaj

Kiran Jasvanee
źródło
7

Aby zmienić nazwę projektu;

  1. Wybierz projekt w nawigatorze projektu.

2. W sekcji Tożsamość i typ Inspektora plików wprowadź nową nazwę w polu Nazwa.

3. Naciśnij Return.

Zostanie wyświetlone okno dialogowe z listą elementów w projekcie, których nazwę można zmienić. Okno dialogowe zawiera podgląd wyglądu elementów po zmianie.

  1. Aby selektywnie zmieniać nazwy elementów, wyłącz pola wyboru dla elementów, których nie chcesz zmieniać. Aby zmienić nazwę tylko swojej aplikacji, pozostaw wybraną aplikację i odznacz wszystkie inne elementy.

  2. Naciśnij „Zmień nazwę”

Paal Aune
źródło
5

Dodatkowe instrukcje, postępując zgodnie z rozwiązaniami @ Luke-West + @ Vaiden:

  • Jeśli Twój schemat nie zmienił się (nadal pokazuje mój Mac) w lewym górnym rogu obok przycisku zatrzymania:

    1. Kliknij NOWO utworzona nazwa projektu (obok przycisku zatrzymania)> Kliknij Edytuj schematy> Kompilacja (lewa strona)> Usuń stary cel (powie, że go brakuje) i zamień na NOWO nazwany projekt pod NOWO nazwanym logo projektu

Ponadto nie musiałem stosować kroku 3 rozwiązania @ Vaiden. Samo uruchomienie rm -rf Pods/w terminalu pozbyło się wszystkich starych plików pod

Nie musiałem także używać kroku 9 w rozwiązaniu @ Vaiden, zamiast tego po prostu usunąłem projekt OLD o nazwie framework w Link Binary Libraries (ramka o nazwie NEWLY już tam była)

Tak zaktualizowane kroki byłyby następujące:

Krok 1 - Zmień nazwę projektu

  1. Jeśli używasz cocoapods w swoim projekcie, zamknij obszar roboczy i otwórz projekt XCode dla tych kroków.
  2. Kliknij projekt, którego nazwę chcesz zmienić, w „Nawigatorze projektu” po lewej stronie widoku Xcode.
  3. Po prawej wybierz „Inspektor plików”, a nazwa twojego projektu powinna się tam znajdować w „Tożsamości i typie”, zmień go na nową nazwę.
  4. Kliknij „Zmień nazwę” w menu rozwijanym

Krok 2 - Zmień nazwę programu

  1. Na górnym pasku (obok przycisku „Stop”) znajduje się schemat dla twojego OLD produktu, kliknij go, a następnie przejdź do „Zarządzaj schematami”
  2. Kliknij NASTĘPNĄ nazwę w schemacie, a stanie się edytowalna, zmień nazwę
  3. Wyjdź z XCode.
  4. W folderze głównym zmień nazwę OLD.xcworkspace na NEW.xcworkspace.

Krok 3 - Zmień nazwę folderu na swoje zasoby

  1. Zamknij Xcode
  2. W prawidłowo nazwanym folderze głównym znajduje się nowo nazwany plik xcodeproj z niewłaściwie nazwanym folderem OLD. Zmień nazwę folderu OLD na nową nazwę
  3. Ponownie otwórz projekt, zobaczysz ostrzeżenie: „Folder OLD nie istnieje”, odrzuć ostrzeżenie
  4. W „Nawigatorze projektu” po lewej stronie kliknij nazwę folderu OLD najwyższego poziomu
  5. W panelu Narzędzia w obszarze „Tożsamość i typ” zobaczysz pozycję „Nazwa”, zmień ją z OLD na nową nazwę
  6. Tuż poniżej znajduje się wpis „Lokalizacja”. Kliknij folder o STAREJ nazwie i wybierz folder o nowej nazwie

Krok 4 - Zmień nazwę danych listy kompilacji

  1. Kliknij projekt w „Nawigatorze projektu” po lewej stronie, w panelu głównym wybierz „Ustawienia kompilacji”
  2. Wyszukaj „plist” w tej sekcji Pod opakowaniem zobaczysz Info.plist i identyfikator pakietu produktów
  3. Zmień nazwę pierwszego wpisu w Info.plist
  4. Zrób to samo dla identyfikatora produktu

Krok 5 Postępowanie z plikiem podfile

  1. W XCode: wybierz i edytuj Podfile w nawigatorze projektu. Powinieneś zobaczyć klauzulę docelową o STAREJ nazwie. Zmień na NOWY.
  2. Wyjdź z XCode.
  3. W terminalu przejdź do katalogu projektu, a następnie: rm -rf Pods/
  4. Uruchom instalację pod.
  5. Otwórz XCode.
  6. Kliknij nazwę projektu w nawigatorze projektu.
  7. W głównym okienku przejdź na kartę Fazy budowy. W obszarze Link binarny z bibliotekami poszukaj starej struktury OLD i usuń ją (powinien powiedzieć, że jej brakuje). NOWA nazwana struktura powinna już tam być, jeśli nie, użyj przycisku „+” u dołu okna, aby ją dodać
  8. Jeśli masz nagłówek Bridging-c, przejdź do Ustawienia kompilacji i zmień lokalizację nagłówka z OLD / OLD-Bridging-Header.h na NEW / NEW-Bridging-Header.h
  9. Oczyść i uruchom.

Powinieneś być w stanie budować bez błędów po pomyślnym wykonaniu wszystkich kroków

itsmcgh
źródło
2
Dla kroku 5.3 zamiast rm-rf Pods/czystszego sposobu jest uruchomienie, pod deintegratektóre usuwa wszystkie ślady CocoaPods z twojego projektu Xcode, ale pozostawia Podfile nietknięty.
jklapwyk
To rządzi. Dało mi to podstawę do połączenia aplikacji Ionic z istniejącą aplikacją na iOS.
t4l
2

Oprócz wszystkich kroków zalecanych przez Luke'a i Vaidena musiałem również zmienić nazwę wszystkich właściwości customModule w moim Storyboard, aby pasowały do ​​nowej nazwy, i to musi uwzględniać wielkość liter.

CristianMoisei
źródło
1
jedyna osoba, która kiedykolwiek o tym wspominała!
Fattie,
1
UWAGA możesz to zrobić W Kreatorze INTERFEJSU, po prostu poprzez „ponowne kliknięcie” na polu. Następnie poprawnie „przywróci domyślną” nazwę nowego projektu.
Fattie,