Xcode-Projekte umbenennen

Immer wieder passiert mir das: Ich probiere etwas Neues aus, geben dem Projekt einen Namen wie hello-spritekit und zwei Wochen später ist eine richtige App daraus geworden. Der ursprüngliche Name ist dann unpassend. Wie kann man also einem Xcode-Projekt einen neuen Namen geben?

Update 26.6.2016: Auch den Schema-Namen ändern.

Update 20.9.2016: Datei name.xcodeproj/project.pbxproj

Nur den App-Namen ändern

Soviel gleich vorweg: In der Regel ist es gar nicht notwendig, einen neuen Namen einzustellen. Oft reicht es aus, nur den nach außen hin sichtbaren Name korrekt einzustellen. Dazu fügen Sie in die Projektdatei Info.plist den neuen Eintrag Bundle display name ein und geben dort den gewünschten App-Namen an. Fertig!

Den für Anwender sichtbaren App-Namen einstellen
Den für Anwender sichtbaren App-Namen einstellen

Projektnamen ändern

Auch das Ändern des Projektnamens gelingt unkompliziert: Sie klicken in Xcode im Projekt-Navigator einfach den Projektnamen an und geben einen neuen Namen an. Xcode schlägt dann diverse weitere Änderungen vor, die Sie nur bestätigen müssen.

Wenn Sie den Projektnamen ändern, passt Xcode einige weitere Referenzen automatisch an.
Wenn Sie den Projektnamen ändern, passt Xcode einige weitere Referenzen automatisch an.

Projektverzeichnis ändern

Sollten Sie gerade so richtig pedantisch aufgelegt sein, dann wird Sie jetzt vermutlich stören, dass es nun einen Widerspruch zwischen dem Projektnamen und dem Verzeichnis gibt, in dem sich die Projektdateien befinden.

Der Verzeichnisname der Projektdateien wurde nicht verändert.
Der Verzeichnisname der Projektdateien wurde nicht verändert.

Sie können auch den Namen dieses Verzeichnisses unkompliziert in Xcode ändern — im Dateisystem bleibt aber der alte Name bestehen. Wollen Sie auch das ändern, bedarf es etwas mehr Hartnäckigkeit: Sie beenden Xcode und benennen das Verzeichnis im Finder um. Wenig überraschend findet Xcode beim nächsten Öffnen des Projekts seine Dateien nicht mehr.

Auf die Veränderungen von Verzeichnissen im Finder reagiert Xcode allergisch.
Auf die Veränderungen von Verzeichnissen im Finder reagiert Xcode allergisch. Das Programm findet die im Verzeichnis enthaltenen Dateien nicht mehr und markiert sie rot.

Dieses Problem lässt sich zum Glück rasch beheben: Zuerst klicken Sie im Projektnavigator das Verzeichnis an, dann im Eigenschaftsfenster das Icons zur Verzeichnisauswahl. Auf diese Weise können den richtigen Verzeichnisort wieder einstellen.

Dieses Icon führt in einen Verzeichnisauswahldialog. Dort korrigieren Sie den Verzeichnisnamen.
Dieses Icon führt in einen Verzeichnisauswahldialog. Dort korrigieren Sie den Verzeichnisnamen.

Damit lassen sich wieder alle Dateien bearbeiten und kompilieren — mit einer Ausnahme: Xcode findet die Info.plist-Datei nicht mehr. Abhilfe schafft der Button Choose Info.plist File in den Projekteinstellungen.

Xcode findet die Info.plist-Datei nicht mehr.
Xcode findet die Info.plist-Datei nicht mehr.

Schema-Name ändern

Nach wie vor unverändert ist der Schema-Name. Die folgenden Bilder zeigen, wie sie auch das Schema neu benennen.

Der Schema-Name zeigt immer noch den alten Projektnamen.
Der Schema-Name zeigt immer noch den alten Projektnamen.
Um den Schema-Namen zu ändern, wählen Sie zuerst »Manage Schemes« aus ...
Um den Schema-Namen zu ändern, wählen Sie zuerst »Manage Schemes« aus …
... und geben dann den gewünschten neuen Namen an.
… und geben dann den gewünschten neuen Namen an.

Letzte Spuren

Die letzten Spuren des alten Projektnamens können Sie jetzt in den Code-Dateien tilgen: Jede Datei wird mit ein paar Copyright-Zeilen eingeleitet, die auch den ursprünglichen Projektnamen enthalten.

projekt.pbxproj

Update 20.9.2016: Heute bin ich über noch einen Ort gestolpert, an dem der ursprüngliche Projektname verborgen war — und zwar im Projektverzeichnis in der Datei projekt.pbxproj die Einstellung productName = "alter-name". Diese Einstellung ist in Xcode nicht zugänglich. Schließen Sie also das Projekt und ändern Sie die Zeichenkette mit einem Editor. Es ist mir nicht klar, ob die Einstellung irgendeine Relevanz hat. Ich war auf der Suche nach einem Fehler, aber der hatte eine andere Ursache.

Quellen