Jak całkowicie zmienić nazwę projektu Xcode (tj. zawierającego foldery)?

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

Zauważ, że XXX jest bardzo powszechnym terminem (np." data "lub po prostu "project"), a zatem proste wyszukiwanie i zastępowanie RegEx nie jest możliwe, z powodu ryzyka uszkodzenia plików konfiguracyjnych projektu.

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

  • XXX
  • XXXTests
  • XXX.xcodeproj

I chcę je zmienić do:

  • YYY
  • YYYTests
  • YYY.xcodeproj

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

Jak mogę to osiągnąć bez konieczności ręcznego tworzenia i wypełniania nowego projektu?


Edit: to jest absolutnie śmieszne, że to stało się moje najbardziej upvoted pytanie: p

Author: Vatsal Manot, 2015-10-27

6 answers

Krok 1-zmiana nazwy projektu

  1. Kliknij na projekt, który chcesz zmienić nazwę w "Nawigator projektu" po lewej stronie widoku Xcode.
  2. po prawej stronie wybierz "Inspektor plików", a nazwa Twojego projektu powinna być tam w sekcji "tożsamość i typ", zmień ją na nową nazwę.
  3. kliknij "Zmień nazwę" w rozwijanym menu

Krok 2-zmiana nazwy programu

  1. w górnym pasku (w pobliżu przycisku" Stop") znajduje się schemat dla Twojego starego produktu, kliknij na niego, następnie przejdź do "Zarządzaj schematami"
  2. Kliknij na starą nazwę w schemacie, a stanie się edytowalna, Zmień nazwę

Krok 3-Zmień nazwę folderu ze swoimi zasobami

  1. Quit Xcode
  2. W poprawnie nazwanym folderze głównym znajduje się nowo nazwany plik xcodeproj z błędnie nazwanym starym folderem. Zmień nazwę starego folderu na nową
  3. Otwórz ponownie projekt, zobaczysz ostrzeżenie: "folder stary nie istnieje", Odrzuć Ostrzeżenie
  4. W "Nawigator projektu" po lewej stronie kliknij starą nazwę folderu najwyższego poziomu
  5. w panelu Narzędzia pod "tożsamość i typ" zobaczysz wpis "Nazwa", zmień to ze starej na nową nazwę
  6. tuż poniżej znajduje się wpis "lokalizacja". Kliknij folder o starej nazwie i wybierz nowo przemianowany folder

Krok 4-Zmień nazwę pliku kompilacji * *

  1. Kliknij na projekt w "Nawigatorze projektów" po lewej stronie, w głównym panelu wybierz " Build Ustawienia "
  2. Szukaj "plist" w tym dziale
  3. pod opakowaniem zobaczysz Info.plist i Product bundle identifier
  4. Zmień nazwę górnego wpisu w Info.plist
  5. zrób to samo dla Product Identifier

W końcu , jesteś gotowy i możesz odbudować ( Command + Shift + K to clean, Command + B to build)

 616
Author: Luke West,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-03 13:24:22

Aby dodać do @ luke-west 's excellent answer:

Podczas stosowania CocoaPods

Po Kroku 2:

  1. Zakończ XCode.
  2. w folderze głównym Zmień nazwę OLD.xcworkspace na NEW.xcworkspace.

Po kroku 4:

  1. w XCode: wybierz i edytuj Podfile z nawigatora projektu. Powinieneś zobaczyć target klauzulę o starej nazwie. Zmień na nowy.
  2. Zakończ XCode.
  3. w folderze projektu usuń plik OLD.podspec.
  4. rm -rf Pods/
  5. Run pod install.
  6. Otwórz XCode.
  7. Kliknij nazwę projektu w Nawigatorze projektu.
  8. w panelu głównym przełącz się na kartę Build Phases.
  9. Pod Link Binary With Libraries poszukaj libPods-OLD.a i usuń to.
  10. jeśli masz nagłówek mostkowy objective-c przejdź do ustawień budowania i zmień lokalizację nagłówka z OLD / OLD-Bridging-Header.h do NEW / NEW-Bridging-Header.h
  11. czyści i ucieka.
 108
Author: Vaiden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-17 13:42:36

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

PROSZĘ cd DO REPOZYTORIUM INNEGO NIŻ GIT PRZED KONTYNUACJĄ ⚠️

Krok 1-Wymagania Wstępne

  1. skopiuj oryginalny folder projektu do tymczasowego /NewProjectFolder poza twoim repozytorium git. ⚠ ️ zmiany w .git może uszkodzić twój indeks git

Krok 2-Otwórz Terminal

Teraz zmienimy nazwę projektu z oldName na NewProject.

  • Zamknij XCode.
  • idź do swojego /NewProjectFolder.
cd /Path/to/your/NewProjectFolder
  • zainstaluj potrzebne dodatkowe narzędzia.
brew install rename ack
  • Zmień nazwy plików i katalogów zawierających ciąg źródłowy. będziesz musiał uruchomić to polecenie dwa razy , ponieważ nazwy katalogów zostaną najpierw zmienione, a pliki i katalogi wewnątrz nich zostaną zmienione podczas następnej iteracji.
find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'NewProject'
  • sprawdź, czy wszystkie pliki zawierające łańcuch źródłowy są / align = "left" / Powinieneś zobaczyć puste wyjście.
find . -name 'oldName*'
  • Zastąp wszystkie wystąpienia ciągu znaków 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 znaków we wszystkich plikach zostały zastąpione. Powinieneś zobaczyć puste wyjście.
ack --literal 'oldName'
  • Run pod install
  • Dodaj NewProjectFolder do swojego repozytorium.
  • Koniec z Tobą!
 16
Author: Pietro Basso,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-09 07:22:04

Aby zmienić nazwę projektu;

  1. Wybierz swój projekt w nawigatorze projektów.

2.In 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óre można zmienić. Okno dialogowe zawiera podgląd wyglądu elementów Po zmianie.

  1. Aby selektywnie zmienić nazwy elementów, wyłącz pola wyboru dla wszystkich elementów nie chcę zmieniać nazwy. Aby zmienić nazwę tylko aplikacji, pozostaw ją zaznaczoną i usuń zaznaczenie wszystkich innych elementów.

  2. Naciśnij "Zmień Nazwę"

 5
Author: Paal Aune,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-20 13:13:48

Istnieje projekt GitHub o nazwie Xcode Project Renamer:

Powinno być wykonywane z katalogu głównego projektu Xcode i wywoływane z dwoma parametrami łańcuchowymi: $ OLD_PROJECT_NAME & $NEW_PROJECT_NAME

Skrypt przenika rekurencyjnie wszystkie pliki i katalogi, w tym projekcie Xcode lub pliku obszaru roboczego i zastępuje wszystkie wystąpienia łańcuch $OLD_PROJECT_NAME z łańcuchem $NEW_PROJECT_NAME (zarówno w nazwa i zawartość KAŻDEGO pliku).

Projekt Xcode Renamer

 5
Author: Olcay Ertaş,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-02 17:19:46

Dodatkowe instrukcje podczas stosowania rozwiązań @ Luke-West + @ Vaiden:

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

    1. Kliknij nowo utworzony projekt (obok przycisku stop) > kliknij Edytuj Schematy > Zbuduj (po lewej stronie) > Usuń stary cel (powie, że go brakuje) i zastąp nowo nazwanym projektem pod nowo nazwanym logo projektu

Poza tym, nie musiałem używać step 3 z rozwiązania @ Vaiden. Po uruchomieniu rm -rf Pods/ w terminalu pozbyłem się wszystkich starych plików pod

Nie musiałem też używać kroku 9 w rozwiązaniu @ Vaiden, zamiast tego usunąłem stary projekt o nazwie framework pod linkiem binarne Biblioteki (nowo nazwany framework już tam był)

Więc zaktualizowane kroki będą następujące:

Krok 1-Zmień nazwę projektu

  1. Kliknij na projekt, który chcesz zmienić nazwę w "Nawigator projektu" po lewej stronie Xcode widok.
  2. po prawej stronie wybierz "Inspektor plików", a nazwa Twojego projektu powinna być tam w sekcji "tożsamość i typ", zmień ją na nową nazwę.
  3. kliknij "Zmień nazwę" w rozwijanym menu

Krok 2-Zmień nazwę schematu

  1. w górnym pasku (w pobliżu przycisku "Stop") znajduje się schemat dla Twojego starego produktu, kliknij na niego, a następnie przejdź do "Zarządzaj schematami"
  2. Kliknij na starą nazwę w schemacie, a stanie się edytowalna, Zmień Nazwa
  3. Zakończ XCode.
  4. w folderze głównym Zmień nazwę OLD.xcworkspace do nowego.xcworkspace.

Krok 3-Zmień nazwę folderu ze swoimi zasobami

  1. Quit Xcode
  2. W poprawnie nazwanym folderze głównym znajduje się nowo nazwany plik xcodeproj z błędnie nazwanym starym folderem. Zmień nazwę starego folderu na nową
  3. Otwórz ponownie projekt, zobaczysz ostrzeżenie: "folder stary nie istnieje", Odrzuć Ostrzeżenie
  4. W "Nawigator projektu" po lewej stronie kliknij starą nazwę folderu najwyższego poziomu
  5. w panelu Narzędzia pod "tożsamość i typ" zobaczysz wpis "Nazwa", zmień to ze starej na nową nazwę
  6. tuż poniżej znajduje się wpis "lokalizacja". Kliknij folder o starej nazwie i wybierz nowo przemianowany folder

Krok 4-Zmień nazwę pliku kompilacji

  1. Kliknij na projekt w "Nawigatorze projektów" po lewej stronie, w głównym panelu wybierz " Build Ustawienia "
  2. Szukaj "plist" w tym dziale Pod opakowaniem zobaczysz informacje.plist i identyfikator pakietu produktu
  3. Zmień nazwę górnego wpisu w Info.plist
  4. zrób to samo dla identyfikatora produktu

Krok 5 Obsługa Podfile

  1. w XCode: wybierz i edytuj plik Podfile z nawigatora projektu. Powinieneś zobaczyć klauzulę docelową o starej nazwie. Zmień na nowy.
  2. Zakończ XCode.
  3. w terminalu, cd do katalogu projektu, wtedy: rm -rf Pods/
  4. Uruchom pod install.
  5. Otwórz XCode.
  6. Kliknij nazwę projektu w Nawigatorze projektu.
  7. w panelu głównym przełącz się na kartę fazy budowania. Pod linkiem binarnym z bibliotekami poszukaj starego frameworka i usuń go (powinno być napisane, że brakuje) nowo nazwany framework powinien już tam być, jeśli nie użyj przycisku "+" na dole okna, aby go dodać
  8. Jeśli masz nagłówek objective-c Bridging przejdź do Build settings i zmień lokalizacja nagłówka z OLD / OLD-Bridging-Header.h do NEW / NEW-Bridging-Header.h
  9. / Align = "left" /

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

 3
Author: itsmcgh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-11 15:26:04