Wie benenne ich ein Xcode-Projekt vollständig um (dh einschließlich Ordner)?

470

Ich habe ein Projekt namens XXX. Ich möchte dieses Projekt in umbenennen YYY.

Beachten Sie, dass dies XXXein äußerst gebräuchlicher Begriff ist (z. B. "Daten" oder einfach "Projekt") und daher ein einfaches Suchen und Ersetzen von RegEx nicht möglich ist, da die Gefahr besteht, dass die Projektkonfigurationsdateien beschädigt werden.

Mein aktuelles Projektverzeichnis enthält folgende Elemente:

  • XXX
  • XXXTests
  • XXX.xcodeproj

und ich möchte sie umbenennen in:

  • YYY
  • YYYTests
  • YYY.xcodeproj

... jeweils mit den notwendigen Änderungen in meiner Projektdatei.

Wie kann ich dies erreichen, ohne ein neues Projekt manuell erstellen und füllen zu müssen?


Edit: Es ist absolut lächerlich, dass dies meine am meisten gestellte Frage geworden ist.

Vatsal Manot
quelle
Mögliches Duplikat des Xcode-Projekts umbenennen
Ron Myschuk
1
Auch hier gefragt und beantwortet stackoverflow.com/questions/17744319/… mit 200 Stimmen auf die Antwort
Ron Myschuk
1
auch hier gefragt und beantwortet stackoverflow.com/questions/8262613/… mit 189 Stimmen beide Beiträge sind noch relevant in Xcode 7
Ron Myschuk
Wenn Sie nur den Namen des App-Symbols umbenennen möchten, überprüfen Sie diese Antwort stackoverflow.com/questions/238980/…
LYu

Antworten:

1020

Schritt 1 - Benennen Sie das Projekt um

  1. Klicken Sie im linken Bereich des Xcode-Fensters im "Projektnavigator" auf das Projekt, das Sie umbenennen möchten.
  2. Wählen Sie im rechten Bereich den "Dateiinspektor" aus. Der Name Ihres Projekts sollte unter "Identität und Typ" angegeben werden. Ändern Sie es in Ihren neuen Namen.
  3. Wenn Sie im Dialogfeld gefragt werden, ob die Inhaltselemente des Projekts umbenannt werden sollen oder nicht, klicken Sie auf "Umbenennen".

Schritt 2 - Benennen Sie das Schema um

  1. Oben im Fenster befindet sich neben der Schaltfläche "Stopp" ein Schema für Ihr Produkt unter dem alten Namen. Klicken Sie darauf und wählen Sie "Schemata verwalten ...".
  2. Klicken Sie im Schema auf den alten Namen, um ihn zu bearbeiten. Ändern Sie den Namen und klicken Sie auf "Schließen".

Schritt 3 - Benennen Sie den Ordner mit Ihren Assets um

  1. Beenden Sie Xcode.
  2. Im korrekt benannten Hauptordner befindet sich eine neu benannte .xcodeproj-Datei mit dem falsch benannten ALTEN Ordner. Benennen Sie den ALTEN Ordner in Ihren neuen Namen um (wenn Sie Git verwenden, können Sie ihn ausführen, git mv oldname newnamedamit Git erkennt, dass dies ein Schritt ist, anstatt neue Dateien zu löschen / hinzuzufügen).
  3. Öffnen Sie das Projekt erneut in Xcode und Sie sehen eine Warnung "Der Ordner ALT existiert nicht". die Warnung abweisen.
  4. Klicken Sie im "Projektnavigator" im linken Bereich auf den ALTEN Ordner der obersten Ebene.
  5. Ändern Sie im rechten Bereich unter "Identität und Typ" das Feld "Name" vom ALTEN Namen in den neuen Namen.
  6. Direkt unter diesem Feld befindet sich ein Menü "Standort". Klicken Sie auf das Ordner-Symbol in der Nähe und wählen Sie den umbenannten Ordner.

Schritt 4 - Benennen Sie die Build-Plist-Daten um

  1. Klicken Sie links im "Projektnavigator" auf das Projekt und wählen Sie im Hauptfenster "Build Settings".
  2. Suchen Sie in den Einstellungen nach "plist".
  3. Im Abschnitt Verpackung sehen Sie Info.plistund Product Bundle Identifier.
  4. Wenn ein Name eingegeben wurde Info.plist, aktualisieren Sie ihn.
  5. Machen Sie dasselbe für Product Bundle Identifier.
  6. Wenn Sie SwiftUI verwenden, suchen Sie nach "Development Assets" und aktualisieren Sie den Pfad.

Schritt 5 - Wiederholen Sie Schritt 3 für Tests (falls vorhanden).

Schritt 6 - Wiederholen Sie Schritt 3 für Kerndaten, wenn der Name mit dem Projektnamen übereinstimmt (falls vorhanden).

Schritt 7 - Erstellen Sie Ihr Projekt neu

  1. Command+ Shift+ Kzu reinigen
  2. Command+ Bzu bauen
Luke West
quelle
5
Sie können den Namen des Projekts ändern, aber die Ordnernamen sind immer noch dieselben. Wissen Sie, wie man diese ändert
Coder221
5
Vielen Dank! Für Xcode 8 sollte die Berechtigungsdatei manuell umbenannt werden.
Jiulong Zhao
54
Wenn Sie Schritt 3 Teil 2 (Umbenennen des Ordners) ausführen und Git verwenden, empfehle ich git mv oldname newname, dass Git auf diese Weise erkennt, dass es sich um einen Umzug handelt, bei dem nicht alle Ihre Dateien gelöscht und hinzugefügt werden.
Aaron Ash
14
Perfekt, funktioniert perfekt in Xcode 8.2. Nur eine Sache, die Sie hier beim Bearbeiten des Schemas beachten sollten , wenn Sie durch einmaliges Klicken auf den Schemanamen nicht bearbeitet werden können. Wählen Sie dann das Schema aus und drücken Sie die Eingabetaste. Dadurch wird der Schemaname bearbeitet.
Khurram Shehzad
5
Vergessen Sie nicht , andere Instanzen Ihres alten Projektnamens zu finden und zu ersetzen .
Derek Soike
194

Um die ausgezeichnete Antwort von @ luke-west zu ergänzen:

Bei Verwendung von CocoaPods

Nach Schritt 2:

  1. Beenden Sie XCode.
  2. Im Master - Ordner umbenennen OLD.xcworkspacezu NEW.xcworkspace.

Nach Schritt 4:

  1. In XCode: Wählen und bearbeiten Sie Podfileim Projektnavigator. Sie sollten eine targetKlausel mit dem ALTEN Namen sehen. Ändern Sie es in NEU.
  2. Beenden Sie XCode.
  3. Löschen Sie im Projektordner die OLD.podspecDatei.
  4. rm -rf Pods/
  5. Ausführen pod install.
  6. Öffnen Sie den XCode.
  7. Klicken Sie im Projektnavigator auf Ihren Projektnamen.
  8. Wechseln Sie im Hauptfenster zur Build PhasesRegisterkarte.
  9. Unter Link Binary With Libraries, sucht libPods-OLD.aund sie löschen.
  10. Wenn Sie einen Ziel-c-Bridging-Header haben, gehen Sie zu Build-Einstellungen und ändern Sie die Position des Headers von OLD / OLD-Bridging-Header.h in NEW / NEW-Bridging-Header.h
  11. Reinigen und laufen lassen.
Vaiden
quelle
7
Mit Xcode 8.3.2 musste ich cocoapods-deintegrate verwenden und alle Pods neu installieren, um das Projekt mit dem neuen Namen auszuführen.
SteffenK
2
@SteffenK Gibt es einen Unterschied zwischen dieser Methode und rm -rf Pods /? In Anbetracht dessen, dass Sie alle anderen Schritte ausgeführt haben?
Vaiden
1
Würden Sie bitte näher darauf eingehen? Welche Spuren?
Vaiden
2
@ Vaiden Vielen Dank für die zusätzliche Klarheit bei der Arbeit mit CocoaPods! Der Prozess hat eine zweite Referenz erstellt, was seltsam war, aber nach dem Entfernen funktionierte alles perfekt! Danke noch einmal! :)
Matt Swift
4
Könnte mir jemand sagen, wo ich die in dieser Antwort erwähnte Datei OLD.podspec finden kann? In meinem Projekt habe ich einige Dateien wie 'Podfile' / 'Podfile.lock' / 'Pods.xcodeproj' und einen leeren Ordner mit dem Namen 'Local Podspecs' erhalten, aber ich kann keine .podspec-Datei finden
codeDude
51

Eine schnellere Lösung mit Shell-Befehlen (funktioniert auch mit CocoaPods):

BITTE cdBEI EINEM NICHT-GIT-REPOSITORY VOR DEM VERFAHREN ⚠️

Schritt 1 - Voraussetzungen

  1. Kopieren Sie Ihren ursprünglichen Projektordner in ein temporäres /NewProjectFolder AUSSERHALB Ihres Git-Repositorys. ⚠️ Änderungen an .git können Ihren Git-Index beschädigen 💥 ☠

Schritt 2 - Öffnen Sie das Terminal

Jetzt werden wir das Projekt von oldNamebis umbenennen NewProject.

  • Schließen Sie XCode.
  • Geh zu deinem /NewProjectFolder.
cd /Path/to/your/NewProjectFolder
  • Installieren Sie die zusätzlichen Werkzeuge.
brew install rename ack
  • Benennen Sie die Dateien und Verzeichnisse mit der Quellzeichenfolge um. Sie müssen DIESEN BEFEHL ZWEIMAL ausführen , da Verzeichnisse zuerst umbenannt werden und Dateien und Verzeichnisse in diesen bei der nächsten Iteration umbenannt werden.
find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'NewProject'
  • Überprüfen Sie, ob alle Dateien, die die Quellzeichenfolge enthalten, umbenannt wurden. Sie sollten eine leere Ausgabe sehen.
find . -name 'oldName*'
  • Ersetzen Sie alle Vorkommen der Zeichenfolge in allen Dateien.
ack --literal --files-with-matches 'oldName' --print0 | xargs -0 sed -i '' 's/oldName/NewProject/g'
  • Überprüfen Sie, ob alle Vorkommen der Zeichenfolge in allen Dateien ersetzt wurden. Sie sollten eine leere Ausgabe sehen.
ack --literal 'oldName'
  • Lauf pod install
  • In NewProjectFolderzu Ihrem Repository.
  • Du bist fertig!
Pietro Basso
quelle
3
Danke dafür fand ich es nützlich. Wenn ich solche Befehle kopiere und einfüge, bevorzuge ich es, wenn die Arbeit minimiert werden kann, sodass ein Beispielname von "YourNewAmazingProjectName" übertrieben ist. Verwenden Sie einfach "example", da dies die Lebensdauer meines Löschschlüssels verlängert.
LpLrich
1
@LpLrich danke für deinen Vorschlag, ich habe gerade meine Antwort aktualisiert.
Pietro Basso
Der Hauptordner wurde umbenannt, aber ich sehe keine anderen umbenannten Verzeichnisse oder Dateien. Irgendwelche Vorschläge?
Ethan Parker
2
@EthanParker Sie müssen find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'ExampleName'zweimal ausführen . Dateien und Verzeichnisse in den Hauptordnern werden bei der zweiten Iteration umbenannt.
Pietro Basso
1
Ich habe coreData in meinem Projekt verwendet und musste diesen Befehl nicht zweimal, sondern dreimal ausführen.
ShadeToD
21

Es gibt ein GitHub-Projekt namens Xcode Project Renamer:

Es sollte im Stammverzeichnis des Xcode-Projektverzeichnisses ausgeführt und mit zwei Zeichenfolgenparametern aufgerufen werden: $ OLD_PROJECT_NAME & $ NEW_PROJECT_NAME

Das Skript durchläuft alle Dateien und Verzeichnisse rekursiv, einschließlich der Xcode-Projekt- oder Arbeitsbereichsdatei, und ersetzt alle Vorkommen der Zeichenfolge $ OLD_PROJECT_NAME durch die Zeichenfolge $ NEW_PROJECT_NAME (sowohl im Namen als auch im Inhalt jeder Datei).

VERGESSEN SIE NICHT, IHR PROJEKT ZU SICHERN!

Xcode Project Renamer

Olcay Ertaş
quelle
Dies ist nicht nützlich für Anfänger. Alles, was es tut, ist, meine Hauptprojektdatei zu beschädigen. Außerdem wird das Skript nicht mit den folgenden Befehlen entfernt, die ich durch Zeitverschwendung beende. $ rm rename.swift
Peter Walter
Bitte gehen Sie nicht nach Abkürzungen.
Peter Walter
6
@ Peter-Walter Sie sollten Ihre Daten immer vor solchen Operationen sichern.
Olcay Ertaş
Das hat wie ein Zauber gewirkt. Das einzige, was fehlt, ist, dass Sie pod installnach dem Ausführen des Skripts ausführen müssen .
romin21
11

XCode 11.0+.

Es ist jetzt wirklich einfach. Gehen Sie einfach zum Project Navigatorlinken Bereich des XCode-Fensters.
Drücken Sie Enter, um es für das Umbenennen zu aktivieren, genau wie Sie den Ordnernamen ändern.
Geben Sie hier die Bildbeschreibung ein

Ändern Sie einfach den neuen Namen hier, und XCode fordert Sie auf, andere Teile umzubenennen.

Geben Sie hier die Bildbeschreibung ein.

Tippen Sie Renamehier und Sie sind fertig.
Wenn Sie sich nicht sicher sind, warum Ihr Stammordner nicht geändert wurde, handelt es sich nur um einen Ordner. einfach mit einem neuen Namen umbenannt.
Geben Sie hier die Bildbeschreibung ein

Kiran Jasvanee
quelle
7

So ändern Sie den Projektnamen;

  1. Wählen Sie Ihr Projekt im Projektnavigator aus.

2. Geben Sie im Abschnitt Identität und Typ des Dateiinspektors einen neuen Namen in das Feld Name ein.

3.Drücken Sie die Eingabetaste.

Ein Dialogfeld wird angezeigt, in dem die Elemente in Ihrem Projekt aufgelistet sind, die umbenannt werden können. Der Dialog enthält eine Vorschau, wie die Elemente nach der Änderung angezeigt werden.

  1. Deaktivieren Sie die Kontrollkästchen für Elemente, die Sie nicht umbenennen möchten, um Elemente selektiv umzubenennen. Um nur Ihre App umzubenennen, lassen Sie die App ausgewählt und deaktivieren Sie alle anderen Elemente.

  2. Drücken Sie "Umbenennen"

Paal Aune
quelle
5

Zusätzliche Anweisungen, wenn Sie die Lösungen von @ Luke-West + @ Vaiden befolgen:

  • Wenn sich Ihr Schema nicht geändert hat (mein Mac wird immer noch angezeigt), befinden Sie sich oben links neben der Stopp-Schaltfläche:

    1. Klicken Sie auf NEU erstellter Projektname (neben der Schaltfläche Stopp)> Klicken Sie auf Schemata bearbeiten> Erstellen (linke Seite)> Entfernen Sie das alte Ziel (wird als fehlend bezeichnet) und ersetzen Sie es durch das NEU benannte Projekt unter dem NEU benannten Projektlogo

Außerdem musste ich Schritt 3 der @ Vaiden-Lösung nicht verwenden. Durch einfaches Ausführen rm -rf Pods/im Terminal wurden alle alten Pod-Dateien entfernt

Ich musste auch nicht Schritt 9 in @ Vaidens Lösung verwenden, sondern habe nur das ALTE Projekt mit dem Namen Framework unter Link Binary Libraries entfernt (das NEU benannte Framework war bereits vorhanden).

Die aktualisierten Schritte wären also wie folgt:

Schritt 1 - Benennen Sie das Projekt um

  1. Wenn Sie in Ihrem Projekt Cocoapods verwenden, schließen Sie den Arbeitsbereich und öffnen Sie das XCode-Projekt für diese Schritte.
  2. Klicken Sie im "Projektnavigator" links in der Xcode-Ansicht auf das Projekt, das Sie umbenennen möchten.
  3. Wählen Sie rechts den "Dateiinspektor" aus und der Name Ihres Projekts sollte sich dort unter "Identität und Typ" befinden. Ändern Sie ihn in den neuen Namen.
  4. Klicken Sie in einem Dropdown-Menü auf "Umbenennen"

Schritt 2 - Benennen Sie das Schema um

  1. In der oberen Leiste (in der Nähe der Schaltfläche "Stopp") befindet sich ein Schema für Ihr ALTES Produkt. Klicken Sie darauf und gehen Sie zu "Schemata verwalten".
  2. Klicken Sie im Schema auf den ALTEN Namen, um ihn zu bearbeiten. Ändern Sie den Namen
  3. Beenden Sie XCode.
  4. Benennen Sie im Hauptordner OLD.xcworkspace in NEW.xcworkspace um.

Schritt 3 - Benennen Sie den Ordner mit Ihren Assets um

  1. Beenden Sie Xcode
  2. Im korrekt benannten Hauptordner befindet sich eine neu benannte xcodeproj-Datei mit dem falsch benannten ALTEN Ordner. Benennen Sie den ALTEN Ordner in Ihren neuen Namen um
  3. Öffnen Sie das Projekt erneut. Es wird eine Warnung angezeigt: "Der Ordner ALT existiert nicht". Schließen Sie die Warnung
  4. Klicken Sie im "Projektnavigator" links auf den Namen des ALTEN Ordners der obersten Ebene
  5. Im Bereich Dienstprogramme unter "Identität und Typ" wird der Eintrag "Name" angezeigt. Ändern Sie diesen vom ALTEN in den neuen Namen
  6. Direkt darunter befindet sich ein Eintrag "Standort". Klicken Sie auf einen Ordner mit dem ALTEN Namen und wählen Sie den neu umbenannten Ordner

Schritt 4 - Benennen Sie die Build-Plist-Daten um

  1. Klicken Sie im "Projektnavigator" links auf das Projekt und wählen Sie im Hauptfenster "Build Settings".
  2. Suchen Sie in diesem Abschnitt nach "plist". Unter Verpackung sehen Sie Info.plist und Produktpaket-ID
  3. Benennen Sie den obersten Eintrag in Info.plist um
  4. Machen Sie dasselbe für die Produktkennung

Schritt 5 Umgang mit Podfile

  1. In XCode: Wählen und bearbeiten Sie Podfile im Projektnavigator. Sie sollten eine Zielklausel mit dem ALTEN Namen sehen. Ändern Sie es in NEU.
  2. Beenden Sie XCode.
  3. CD im Terminal in das Projektverzeichnis, dann: rm -rf Pods/
  4. Führen Sie die Pod-Installation aus.
  5. Öffnen Sie den XCode.
  6. Klicken Sie im Projektnavigator auf Ihren Projektnamen.
  7. Wechseln Sie im Hauptbereich zur Registerkarte Build-Phasen. Suchen Sie unter Binär mit Bibliotheken verknüpfen nach dem ALTEN Framework und entfernen Sie es (sollte sagen, dass es fehlt). Das NEU benannte Framework sollte bereits vorhanden sein. Wenn nicht, verwenden Sie die Schaltfläche "+" am unteren Rand des Fensters, um es hinzuzufügen
  8. Wenn Sie einen Ziel-c-Bridging-Header haben, gehen Sie zu Build-Einstellungen und ändern Sie die Position des Headers von OLD / OLD-Bridging-Header.h in NEW / NEW-Bridging-Header.h
  9. Reinigen und laufen lassen.

Sie sollten in der Lage sein, fehlerfrei zu erstellen, nachdem Sie alle Schritte erfolgreich ausgeführt haben

itsmcgh
quelle
2
Für Schritt 5.3 wird anstelle rm-rf Pods/einer saubereren Methode ausgeführt pod deintegrate, bei der alle Spuren von CocoaPods aus Ihrem Xcode-Projekt entfernt werden, Ihr Podfile jedoch intakt bleibt.
jklapwyk
Diese Regeln. Es bildete die Grundlage für mich, eine Ionic-App mit einer vorhandenen iOS-App zusammenzuführen.
t4l
2

Abgesehen von allen Schritten, die Luke und Vaiden empfohlen haben, musste ich auch alle customModule-Eigenschaften in meinem Storyboard umbenennen, um sie an den neuen Namen anzupassen. Dabei muss zwischen Groß- und Kleinschreibung unterschieden werden.

Cristian Moisei
quelle
1
die einzige Person, die dies jemals erwähnt hat!
Fattie
1
HINWEIS Sie können dies IN INTERFACE BUILDER tun, indem Sie einfach auf das Feld "erneut klicken". Es wird dann korrekt auf Ihren neuen Projektnamen "zurückgesetzt".
Fattie