Duplikuj i zmień nazwę projektu Xcode i powiązanych folderów

Chciałbym móc powielić cały projekt Xcode, zmienić nazwę projektu i powiązanych plików bez Xcode będzie psychiczne, i bez konieczności ręcznego ponownego importu wszystkich plików do projektu.

Author: Sammio2, 2013-07-19

9 answers

Ta odpowiedź jest kulminacją różnych innych postów i samouczków Stoskoverflow w Internecie, umieszczonych w jednym miejscu dla mojego przyszłego odniesienia i aby pomóc każdemu, kto może borykać się z tym samym problemem. Wszystkie kredyty są przyznawane za inne odpowiedzi na końcu.

Powielanie projektu Xcode

  • W Finderze zduplikuj folder projektu do żądanej lokalizacji nowego projektu. Nie zmieniaj nazwy .nazwa pliku xcodeproj lub jakiekolwiek powiązane foldery w tym scena.

  • W Xcode Zmień nazwę projektu. Wybierz swój projekt z panelu nawigatora(lewy panel). W panelu Narzędzia (prawy panel) Zmień nazwę projektu, Zaakceptuj zmiany proponowane przez Xcode.

  • W Xcode Zmień nazwy schematów w "Zarządzaj schematami", a także zmień nazwy wszelkich celów, które możesz mieć.

  • Jeśli nie używasz domyślnego identyfikatora pakietu, który zawiera bieżącą nazwę produktu na końcu (więc będzie aktualizowany automatycznie), Zmień Pakiet Identyfikator do nowego, który będzie używany do zduplikowanego projektu.

Zmiana nazwy folderu źródłowego

Więc po wykonaniu powyższych kroków powinieneś mieć zduplikowany i przemianowany projekt Xcode, który powinien pomyślnie zbudować i skompilować, jednak twój folder kodu źródłowego nadal będzie nazwany tak, jak to było w oryginalnym projekcie. Nie powoduje to żadnych problemów z kompilatorem, ale nie jest to najbardziej przejrzysta struktura plików dla ludzi do nawigacji w SCM, itp. Aby zmienić nazwę tego folderu nie przerywając wszystkich linków do plików, wykonaj następujące kroki:

  • W Finderze Zmień nazwę folderu źródłowego. Spowoduje to złamanie projektu, ponieważ Xcode nie wykryje automatycznie zmian. Wszystkie listy plików xcode stracą swoje linki z rzeczywistymi plikami, więc wszystko zmieni kolor na czerwony.

  • W Xcode, kliknij na wirtualny folder, który przemianowany (to prawdopodobnie będzie tuż u góry, tuż pod rzeczywistą .xcodeproject) Zmień nazwę na pasującą do nazwy w Finder, to niczego nie naprawi i ściśle nie jest wymagany krok, ale miło jest mieć pasujące nazwy plików.

  • W Xcode Wybierz folder, którego nazwa została właśnie zmieniona w okienku nawigacji. Następnie w panelu Narzędzia (po prawej stronie) kliknij ikonę, która wygląda jak ciemnoszary folder, tuż pod menu rozwijanym "lokalizacja". Z tego miejsca przejdź do folderu ze zmienioną nazwą w Finderze i kliknij "Wybierz". Spowoduje to automatyczne ponowne skojarzenie wszystkich plików i nie powinny już w okienku nawigacji Xcode pojawi się kolor czerwony.

Ikona do kliknięcia

  • W Ustawieniach budowania projektu / celów wyszukaj starą nazwę folderu i ręcznie Zmień nazwę wszystkich znalezionych wystąpień. Zwykle jest jeden dla przedrostka.pch i jeden dla informacji.plist, ale może być ich więcej.

  • Jeśli używasz bibliotek innych firm (Testflight / Hockeyapp / etc), musisz również wyszukać "ścieżki wyszukiwania bibliotek" i zmienić nazwę wszystkich wystąpień starego pliku tutaj też nazwisko.

  • Powtórz ten proces dla dowolnego folderu kodu źródłowego testów jednostkowych, który może zawierać twój projekt, Proces jest identyczny.

To powinno pozwolić na powielenie i zmianę nazwy projektu xcode i wszystkich powiązanych plików bez konieczności ręcznej edycji plików xcode i ryzyka bałagan rzeczy.

Napisy

Wielkie podziękowania dla Nicka Lockwooda i Pauly ' ego Glotta za udzielenie osobnych odpowiedzi na to problem.

 338
Author: Sammio2,
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
2016-12-28 18:47:37

Zamieszczam to, ponieważ zawsze miałem problemy przy zmianie nazwy projektu w XCode.

Zmiana nazwy projektu jest dobra i prosta, ale to nie zmienia nazwy folderu źródłowego. Oto krok po kroku tego, co zrobiłem, że pracował świetnie w Xcode 4 i 5 Dzięki poniższym linkom.

Linki REF:
Zmień nazwę projektu.
Zmień nazwę folderu źródłowego i innych plików.

1- Utwórz kopię zapasową swojego projektu.

Jeśli używasz Gita, Zatwierdź wszelkie zmiany, zrób kopię całego folderu projektu i kopię zapasową w time machine przed dokonaniem jakichkolwiek zmian (ten krok nie jest wymagany, ale Gorąco polecam).

2- Otwórz swój projekt.

3- powolne podwójne kliknięcie lub wciśnięcie enter na nazwie projektu (niebieska górna ikona) i zmień jego nazwę na dowolną.

Uwaga: Po zmianie nazwy projektu i naciśnięciu klawisza "enter" zasugeruje automatyczną zmianę wszystkich wpisów związanych z nazwą projektu i pozwoli możesz usunąć niektóre z nich, jeśli chcesz. Wybierz wszystkie z je i kliknij ok.

4- Zmień nazwę schematu

a) Kliknij menu tuż obok przycisku stop i wybierz Zarządzaj schematami.

b) pojedyncze-powolne kliknięcie lub wciśnięcie enter na Starym schemacie nazw i zmień jego nazwę na cokolwiek chcesz.

c) kliknij ok.

5 - Zbuduj i uruchom, aby upewnić się, że działa.

Uwagi: W tym momencie wszystkie ważne pliki projektu powinny zostać przemianowane z wyjątkiem komentarzy w klasach utworzonych podczas projektu został utworzony ani folder źródłowy. Następnie zmienimy nazwę folderu w system plików.

6- Zamknij projekt.

7- Zmień nazwę folderu głównego i źródłowego.

8- kliknij prawym przyciskiem myszy plik project bundle .xcodeproj i wybierz "Pokaż Zawartość pakietu" z menu kontekstowego. Otwórz .plik pbxproj z dowolnym tekstem redaktor.

9- Wyszukaj i zamień dowolne wystąpienie oryginalnej nazwy folderu na nową nazwę folderu.

10- Zapisz plik.

11- Otwórz projekt XCode, przetestuj go.

12- załatwione.

 23
Author: fs_tigre,
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-01-03 03:55:45

Od XCode 7 stało się to znacznie łatwiejsze.

Apple udokumentowało proces na swojej stronie: https://developer.apple.com/library/ios/recipes/xcode_help-project_editor/RenamingaProject/RenamingaProject.html

Aktualizacja: Xcode 8 link: http://help.apple.com/xcode/mac/8.0/#/dev3db3afe4f

 3
Author: PBJanrain,
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
2016-11-21 17:00:26

Używam Xcode 6+ i po prostu robię:

  • skopiuj wszystkie pliki z folderów projektu do nowych folderów (z nową nazwą).
  • otwórz *.xcodeproj or *.xcworkspace
  • Zmień nazwę projektu.
  • Kliknij schemat i Usuń bieżący chema i dodaj nowy.

Tutaj jest zrobione, ale nazwa okna Xcode i *.xcodeproj or *.xcworkspace nadal <old-name>. Więc robię:

  • pop install
  • Otwórz <new name>.xcworkspace
 1
Author: SLyHuy,
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
2015-05-05 12:19:51

Jeszcze jedna rzecz do wypróbowania!

Kiedy skopiowałem wszystkie pliki, otworzyłem projekt i zmieniłem jego nazwę, wszystko zmieniło się na nazwę mojego nowego projektu z wyjątkiem dla celu testowego! Otrzymałem błąd linkera, który mówił, że brakuje mi pliku o nazwie " myOldProjectname.app". Oto co naprawiłem:

  1. Kliknij Ustawienia projektu i wybierz docelowy test Tutaj wpisz opis obrazka

  2. Kliknij na build settings i wyszukaj " test host" Tutaj wpisz opis obrazka

  3. Sprawdź te 2 pliki / align = "left" / Są szanse, że te 2 ścieżki nadal wskazują na twoją starą nazwę projektu. Tutaj wpisz opis obrazka

Mam nadzieję, że to pomoże!

 1
Author: erparker,
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
2015-06-02 22:20:37

Używam tego skryptu po tym, jak zmieniam nazwę mojego projektu na iOS. Pomaga zmienić nazwę katalogów i zsynchronizować nazwy.

Http://github.com/ytbryan/rename

Uwaga: będziesz musiał ręcznie zmienić nazwę schematu.

 1
Author: ytbryan,
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
2016-06-17 10:29:11

Dla każdego, kto ma problemy z awarią storyboard po skopiowaniu projektu, udaj się do głównej.storyboard pod Inspektorem tożsamości.

Następnie sprawdź, czy twój obecny moduł jest poprawnym modułem, a nie Starym.

 0
Author: Wraithseeker,
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
2015-10-01 03:55:02

W przykładowym kodzie książki "Instant OpenCV for iOS" znalazłem skrypt bash, który kopiuje projekt z folderu do innego.
Robiąc małe badania znalazłem wpis na blogu od tego, co wydaje się być oryginalnym autorem skryptu: http://mohrt.blogspot.it/2009/01/renaming-xcode-project-from-command.html , gdzie można pobrać skrypt . Wypróbowałem go i uruchomiłem z terminala w ten sposób

    sh renameXcodeProject.sh <name-of-existing-folder> <name-of-folder-to-create>   
Działa dobrze.
Dodatkowe informacje można go znaleźć otwierając plik za pomocą edytora tekstu. Hope that helps
 0
Author: Giorgio Tempesta,
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
2016-06-02 14:13:04

Używam prostego skryptu BASH do zmiany nazwy.

Użycie: ./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}"

Uwagi:

  1. ten skrypt zignoruje wszystkie pliki takie jak .git i .DS_Store
  2. nie będzie działać, jeśli stara nazwa / nowa nazwa zawiera spacje
  3. może nie działać, jeśli używasz pods (nie testowane)
  4. Nazwa programu nie zostanie zmieniona (w każdym razie projekt działa i kompiluje się normalnie)
 0
Author: Anton Malmygin,
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-03-05 00:05:37