Duplizieren und Umbenennen des Xcode-Projekts und der zugehörigen Ordner [geschlossen]


194

Ich möchte in der Lage sein, ein gesamtes Xcode-Projekt zu duplizieren, das Projekt und die zugehörigen Dateien umzubenennen, ohne dass Xcode mental wird und ohne alle Dateien manuell in das Projekt erneut importieren zu müssen.

Antworten:


368

Diese Antwort ist der Höhepunkt verschiedener anderer StackOverflow-Beiträge und -Tutorials im Internet, die an einen Ort gebracht wurden, um später darauf zurückgreifen zu können und allen anderen zu helfen, die möglicherweise mit demselben Problem konfrontiert sind. Alle Antworten werden am Ende gutgeschrieben.

Duplizieren eines Xcode-Projekts

  • Duplizieren Sie im Finder den Projektordner an den gewünschten Speicherort Ihres neuen Projekts. Benennen Sie den .xcodeproj-Dateinamen oder zugehörige Ordner zu diesem Zeitpunkt nicht um.

  • Benennen Sie das Projekt in Xcode um. Wählen Sie Ihr Projekt im Navigatorbereich (linker Bereich) aus. Benennen Sie im Bereich Dienstprogramme (rechter Bereich) Ihr Projekt um. Akzeptieren Sie die von Xcode vorgeschlagenen Änderungen.

  • Benennen Sie in Xcode die Schemata unter "Schemata verwalten" um und benennen Sie auch alle Ziele um, die Sie möglicherweise haben.

  • Wenn Sie nicht die Standard-Bundle-ID verwenden, die am Ende den aktuellen PRODUCT_NAME enthält (wird also automatisch aktualisiert), ändern Sie Ihre Bundle-ID in die neue, die Sie für Ihr dupliziertes Projekt verwenden.

Umbenennen des Quellordners

Nachdem Sie die obigen Schritte ausgeführt haben, sollten Sie ein dupliziertes und umbenanntes Xcode-Projekt haben, das erfolgreich erstellt und kompiliert werden sollte. Ihr Quellcode-Ordner wird jedoch weiterhin so benannt, wie er im ursprünglichen Projekt war. Dies verursacht keine Compilerprobleme, ist jedoch nicht die klarste Dateistruktur für Benutzer, die in SCM usw. navigieren möchten. Gehen Sie folgendermaßen vor, um diesen Ordner umzubenennen, ohne alle Dateilinks zu beschädigen:

  • Benennen Sie den Quellordner im Finder um. Dadurch wird Ihr Projekt beschädigt, da Xcode die Änderungen nicht automatisch erkennt. Alle Ihre Xcode-Dateilisten verlieren ihre Verknüpfung mit den tatsächlichen Dateien, sodass alle rot werden.

  • Klicken Sie in Xcode auf den virtuellen Ordner, den Sie umbenannt haben Erforderlicher Schritt, aber es ist schön, wenn die Dateinamen übereinstimmen.

  • Wählen Sie in Xcode den gerade umbenannten Ordner im Navigationsbereich aus. Klicken Sie dann im Bereich "Dienstprogramme" (ganz rechts) auf das Symbol, das wie ein dunkelgrauer Ordner aussieht, direkt unter dem Dropdown-Menü "Standort". Navigieren Sie von hier aus zu Ihrem umbenannten Ordner im Finder und klicken Sie auf "Auswählen". Dadurch werden alle Ihre Dateien automatisch neu zugeordnet, und sie sollten im Xcode-Navigationsbereich nicht mehr rot angezeigt werden.

Symbol zum Klicken

  • Suchen Sie in den Build-Einstellungen Ihres Projekts / Ihrer Ziele nach dem alten Ordnernamen und benennen Sie alle gefundenen Vorkommen manuell um. Normalerweise gibt es eine für die prefix.pch und eine für die info.plist, aber möglicherweise gibt es noch mehr.

  • Wenn Sie Bibliotheken von Drittanbietern (Testflight / Hockeyapp / etc) verwenden, müssen Sie auch nach 'Library Search Paths' suchen und alle Vorkommen des alten Dateinamens auch hier umbenennen.

  • Wiederholen Sie diesen Vorgang für alle Unit-Test-Quellcode-Ordner, die Ihr Projekt möglicherweise enthält. Der Vorgang ist identisch.

Dies sollte es Ihnen ermöglichen, ein Xcode-Projekt und alle zugehörigen Dateien zu duplizieren und umzubenennen, ohne Xcode-Dateien manuell bearbeiten zu müssen.

Credits

Vielen Dank an Nick Lockwood und Pauly Glott für die getrennten Antworten auf dieses Problem.


3
Nachdem ich das oben Gesagte befolgt hatte, suchte ich im Hole-Projekt nach "altem Namen" und fand heraus, was geändert werden musste (Präfix-Header) und es wurde mit "neuer Name" und an einer anderen Stelle in Ordnung kompiliert. Tolles Tutorial - genau das, was ich brauchte. (Getestet mit Xcode 5.0.1 / iOS 7.0)
Mac

Dies schien mich nicht ganz dorthin zu bringen (auf Xcode 5.0.2 hier mit einem Projekt, das von 4.6.3 auf 5.0.0 migriert wurde). Es gab viele Dinge in der *.xcodeproj/project.pbxprojDatei, die den ursprünglichen Ordnerpfad enthielten. Insbesondere schlug der Build fehl, weil im ursprünglichen Ordner ständig nach einer info.plist gesucht wurde.
Steven Lu

2
Aus Neugier ist hier eine Art alte Schule, um dies zu tun ... stackoverflow.com/questions/10006482/… (Daniels Antwort)
Fattie

1
Xcode 7.1.1 stürzt für mich bei der ersten Hürde ab - beim Umbenennen des Projekts. Wird nachforschen, aber hat jemand anderes das gefunden?
HughHughTeotl

5
Es fehlt die Vorgehensweise, wenn Cocoapods in das Projekt integriert ist. Ich habe auch hier einen hilfreichen Link gefunden: h4ckish.com/2015/01/22/renaming-your-cocoapods-ios-project
KK

29

Ich poste dies, da ich beim Umbenennen eines Projekts in immer Probleme hatte XCode.

Das Umbenennen des Projekts ist gut und einfach, aber dies benennt den Quellordner nicht um. Hier ist eine Schritt für Schritt, was ich getan habe, was in Xcode 4 und 5 dank der folgenden Links großartig funktioniert hat.

REF-Links:
Projekt umbenennen.
Benennen Sie den Quellordner und andere Dateien um.

1- Sichern Sie Ihr Projekt.

Wenn Sie git verwenden, übernehmen Sie alle Änderungen, erstellen Sie eine Kopie des gesamten Projektordners und sichern Sie in der Zeitmaschine, bevor Sie Änderungen vornehmen (dieser Schritt ist nicht erforderlich, wird jedoch dringend empfohlen).

2- Öffnen Sie Ihr Projekt.

3- Doppelklicken Sie langsam oder drücken Sie die Eingabetaste für den Projektnamen (blaues oberes Symbol) und benennen Sie ihn nach Belieben um.

HINWEIS: Nachdem Sie das Projekt umbenannt und die Eingabetaste gedrückt haben, wird empfohlen, alle projektnamenbezogenen Einträge automatisch zu ändern und einige davon abzuwählen, wenn Sie möchten. Wählen Sie alle aus und klicken Sie auf OK.

4- Benennen Sie das Schema um

a) Klicken Sie auf das Menü direkt neben der Schaltfläche Stopp und wählen Sie Schemata verwalten.

b) Klicken Sie einfach langsam oder drücken Sie die Eingabetaste für das alte Namensschema und benennen Sie es nach Belieben um.

c) Klicken Sie auf OK.

5 - Erstellen und ausführen, um sicherzustellen, dass es funktioniert.

HINWEISE: Zu diesem Zeitpunkt sollten alle wichtigen Projektdateien mit Ausnahme der Kommentare in den Klassen, die beim Erstellen des Projekts erstellt wurden, und des Quellordners umbenannt werden. Als nächstes werden wir den Ordner im Dateisystem umbenennen.

6- Schließen Sie das Projekt.

7- Benennen Sie den Haupt- und den Quellordner um.

8- Klicken Sie mit der rechten Maustaste auf die Projektpaketdatei .xcodeprojund wählen Sie im Kontextmenü die Option „Paketinhalt anzeigen“. Öffnen Sie die .pbxproj-Datei mit einem beliebigen Texteditor.

9- Suchen und ersetzen Sie alle Vorkommen des ursprünglichen Ordnernamens durch den neuen Ordnernamen.

10- Speichern Sie die Datei.

11- Öffnen Sie das XCode-Projekt und testen Sie es.

12- Fertig.

BEARBEITEN 10/11/19:

Es gibt ein Tool zum Umbenennen von Projekten in Xcode. Ich habe es nicht genug ausprobiert, um es zu kommentieren. https://github.com/appculture/xcode-project-renamer


2
Die Frage war, das kopierte Projekt zu duplizieren und dann umzubenennen. Diese Antwort dient nur zum Umbenennen eines vorhandenen Projekts.
Martinjbaker

1
Dies ist für mich der einfachste Ansatz. Kopieren Sie einfach den ursprünglichen Projektordner, z. B. MyProject, rekursiv nach "MyNewProject". Öffnen Sie dann MyNewProject und fahren Sie mit den Anweisungen von fs_tigre fort. Ich bin überrascht, dass weder Android Studio noch Xcode eine Option "Datei-> Projekt klonen" bieten, die so praktisch wäre. Vielleicht ein schönes Plugin-Projekt für jemanden ( nshipster.com/xcode-plugins )?
Blisterpeanuts

Einzige Methode, die für mich funktioniert hat - XCode 8.2
GreenAsJade

2
Schritt 10.1 - Wenn Sie Bridging-Header- und / oder Berechtigungsdateien haben, benennen Sie diese um, um Ihren neuen Namen wiederzugeben. Wenn Sie Cocoapods verwenden, bearbeiten Sie den Namen in Ihrer Pod-Datei.
David Lari

6

Ab XCode 7 ist dies viel einfacher geworden.

Apple hat den Prozess auf seiner Website dokumentiert: https://developer.apple.com/library/ios/recipes/xcode_help-project_editor/RenamingaProject/RenamingaProject.html

Update: XCode 8-Link: http://help.apple.com/xcode/mac/8.0/#/dev3db3afe4f


2
Dies funktioniert nur, um die Interna der App umzubenennen, aber extern bleiben die Ordner für die App unverändert
smac89


2

Ich verwende dieses Skript , nachdem ich umbenennen mein iOS - Projekt. Es ist hilfreich, den Namen des Verzeichnisses zu ändern und die Namen synchron zu machen.

http://github.com/ytbryan/rename

HINWEIS: Sie müssen den Namen des Schemas manuell ändern.


1

Im Beispielcode für das Buch "Instant OpenCV für iOS" habe ich ein Bash-Skript gefunden, das ein Projekt von einem Ordner in einen anderen kopiert.
Nach ein wenig Recherche habe ich einen Blog-Beitrag von dem scheinbar ursprünglichen Autor des Skripts gefunden: http://mohrt.blogspot.it/2009/01/renaming-xcode-project-from-command.html , wo Sie können das Skript herunterladen . Ich habe es ausprobiert und es so vom Terminal aus ausgeführt

    sh renameXcodeProject.sh <name-of-existing-folder> <name-of-folder-to-create>   

funktioniert gut.
Zusätzliche Informationen finden Sie beim Öffnen der Datei mit einem Texteditor. hoffentlich hilft das


0

Ich benutze Xcode 6+ und mache einfach:

  • Kopieren Sie alle Dateien in Projektordnern in neue Ordner (mit neuem Namen).
  • Öffnen *.xcodeproj or *.xcworkspace
  • Ändern Sie den Namen des Projekts.
  • Klicken Sie auf Schema und löschen Sie die aktuelle Chema und fügen Sie eine neue hinzu.

Hier ist fertig, aber Name des Fensters Xcode und *.xcodeproj or *.xcworkspacenoch <old-name>. Dann mach ich:

  • pop install
  • Öffnen <new name>.xcworkspace

0

Noch etwas zu versuchen!

Als ich alle meine Dateien kopierte, das Projekt öffnete und umbenannte, änderte sich bis auf das Testziel alles in meinen neuen Projektnamen ! Ich habe einen Linker-Fehler erhalten, der besagt, dass mir eine Datei mit dem Namen "myOldProjectname.app" fehlt. Folgendes hat das Problem behoben:

  1. Klicken Sie auf Ihre Projekteinstellungen und wählen Sie Ihr Testziel aus Geben Sie hier die Bildbeschreibung ein

  2. Klicken Sie auf Build-Einstellungen und suchen Sie nach "Testhost" Geben Sie hier die Bildbeschreibung ein

  3. Überprüfen Sie diese beiden Dateipfade. Möglicherweise zeigen diese beiden Pfade immer noch auf Ihren alten Projektnamen. Geben Sie hier die Bildbeschreibung ein

Hoffentlich hilft das!


0

Wenn Sie nach dem Kopieren Ihres Projekts Probleme mit Abstürzen des Storyboards haben, gehen Sie zu Main.storyboard unter Identity Inspector.

Überprüfen Sie als Nächstes, ob Ihr aktuelles Modul das richtige umbenannte Modul ist und nicht das alte.


0

Ich verwende ein einfaches BASH-Skript zum Umbenennen.

Verwendung: ./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}"

Anmerkungen:

  1. Dieses Skript ignoriert alle Dateien wie .git und.DS_Store
  2. Funktioniert nicht, wenn der alte / neue Name Leerzeichen enthält
  3. Funktioniert möglicherweise nicht, wenn Sie Pods verwenden (nicht getestet)
  4. Der Schemaname wird nicht geändert (das Projekt wird ohnehin normal ausgeführt und kompiliert).
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.