Umbenennen des xcode 4-Projekts und des eigentlichen Ordners

119

Ich weiß, wie man das Projekt in Xcode 4 umbenennt, aber wie benennt man den Quellordner um? Die Sache ist, dass das Umbenennen des Projekts in Xcode nur innerhalb von Xcode umbenannt wird (obwohl es im Vergleich zum vorherigen ein Fortschritt ist) - aber warum Xcode den Ordner im Dateisystem nicht umbenennt, weiß ich nicht.

Chris G.
quelle
Haben Sie versucht, den Ordner einfach umzubenennen?
David Brown
2
Ich habe meinen Freund, und alle Dateien in der Projektdatei fehlen dann - sie sind alle mit Lesen markiert, weil sie keine Aktualisierung haben. Aber ich habe die Lösung gefunden - siehe meine Antwort. Vielen Dank für die Antwort
Chris G.

Antworten:

259

Sie können dies in Xcode tun, ohne die pbxproj-Datei in einem Texteditor manuell bearbeiten zu müssen!

Hier ist wie:

  1. Benennen Sie Ihren Quellordner im Finder um. Dadurch wird das Projekt zunächst unterbrochen, da Xcode nicht automatisch erkennt, wann die realen Ordner, auf die die virtuellen (gelben) Projektordner verweisen, geändert werden, sodass alle Dateien in diesem Ordner in Xcode rot werden. Mach dir darüber keine Sorgen, wir werden es in Schritt 3 beheben.

  2. Klicken Sie in Xcode auf den (jetzt beschädigten) virtuellen Ordner in der linken Seitenleiste und benennen Sie ihn so um, dass er mit dem Namen im Finder übereinstimmt (Sie können ihn tatsächlich beliebig nennen oder gar nicht umbenennen, aber das wäre verrückt ). Dadurch werden die roten Dateien im Ordner nicht repariert, aber das ist in Ordnung.

  3. Klicken Sie in der rechten Seitenleiste von Xcode auf das im folgenden Screenshot gezeigte Symbol, um einen Dateidialog aufzurufen. Wählen Sie den Ordner aus, den Sie zuvor umbenannt haben. Dadurch wird der virtuelle Ordner erneut mit dem realen Ordner auf der Festplatte verknüpft und die Links zu allen darin enthaltenen Dateien werden automatisch korrigiert.

  4. Suchen Sie in Ihren Build-Einstellungen nach dem alten Ordnernamen und benennen Sie alle gefundenen Vorkommen manuell um. Normalerweise gibt es zwei davon, oldfolder / prefix.pch und oldfolder / info.plist, aber möglicherweise auch andere.

Alles erledigt!

Geben Sie hier die Bildbeschreibung ein

BEARBEITEN: Diese Option ist in Xcode 5 noch vorhanden, wird jedoch standardmäßig hilfreich ausgeblendet. Klicken Sie zum Anzeigen auf die dünne Überschrift "Identität und Typ" im Inspektor über dem Bereich "Texteinstellungen", um sie zu erweitern.

Nick Lockwood
quelle
Hervorragend Ich möchte nur hinzufügen, dass, wenn das Umbenennen Teil des Umbenennens des gesamten Projekts ist, es einen weiteren Schritt gibt: Ändern Sie den "Projektnamen" im rechten oberen Bereich und lassen Sie Xcode alles intern umbenennen, damit es übereinstimmt.
RedYeti
1
Alles hat super funktioniert und das Projekt wird umbenannt, aber die Build-Nachricht oben und der Name des Simulators behielten den alten Namen bei, um dies zu ändern: Gehen Sie zum Produktmenü, verwalten Sie Schemata und benennen Sie das Schema um
BlackTigerX
Wahr. Sie können das Schema auch einfach löschen und auf die Schaltfläche Schemata automatisch erstellen klicken.
Nick Lockwood
Weiß jemand, wie man das in xCode 5 macht? Ich sehe diesen magischen Knopf nicht mehr. :(
Jason
Es ist immer noch da, es ist nur versteckt. Sie müssen die Zeile "Identität und Typ" im Inspektor erweitern, indem Sie darauf klicken. Ich habe ungefähr 20 Minuten gebraucht, um das herauszufinden!
Nick Lockwood
112

Ich habe es Dutzende Male getan:

  • Benennen Sie das Projekt um, indem Sie auf klicken und dann den Titel in Ihrem Xcode Project Navigator bearbeiten.
  • Schließen Sie Xcode.
  • Benennen Sie den Quellordner um.
  • Öffnen Sie im Finder die .pbxproj Datei im Projektpaket (Kontextmenü "Paketinhalt anzeigen") mit einem beliebigen Texteditor.
  • Suchen und ersetzen alle Vorkommen des ursprünglichen Ordnernamens durch den neuen Ordnernamen.
  • Speicher die Datei.
  • Öffnen Sie das Xcode-Projekt.
djromero
quelle
3
Denken Sie daran, dies zu tun, nachdem Sie das Projekt umbenannt haben
Aram Kocharyan
Ich folge deinen Anweisungen und scheitere. Ich denke, das Problem liegt in "Suchen und Ersetzen des ursprünglichen Ordnernamens durch den neuen Ordnernamen". Könnten Sie detailliertere Anweisungen zu diesem Schritt geben? Vielen Dank
Philip007
Wie gesucht und ersetzt wird, hängt vom ausgewählten Texteditor oder Tool ab. In meinem Fall mit vim: <ESC>:% s / old / new / g <ENTER> Es kann fehlschlagen, wenn die Projektdatei etwas anderes mit einem widersprüchlichen Namen enthält.
Djromero
Danke @madmw, ich habe es herausgefunden. Ich benutze TextEdit. Ich denke, der Trick besteht darin, das Attribut "Enthält" durch "Vollständiges Wort" zu ersetzen, während gesucht und ersetzt wird. Und ich poste die detaillierte Anleitung unten.
Philip007
Funktioniert ein Genuss! Beim Umbenennen des Ordners eines Ziels, beispielsweise einer statischen Bibliothek, musste ich mich auch mit meinen Schemata herumschlagen und auch den Präfix-Header und die Info-Plist-Datei umbenennen.
Tim Potter
12

Aufgabe: Benennen Sie "Play" sowohl in Xcode als auch im Finder in "Play2" um

Ändere das:

Geben Sie hier die Bildbeschreibung ein

Dazu:

Geben Sie hier die Bildbeschreibung ein

SCHRITTE:

// Bitte sichern Sie das Projekt vor allem im Finder!

  • Projekt in Xcode Project Navigator umbenennen // Klicken Sie auf Projektname und drücken Sie die Eingabetaste
  • Gruppe in Xcode Project Navigator umbenennen // hat keinen Einfluss auf den Ordnernamen im Finder
  • Schließen Sie Xcode
  • Benennen Sie den äußeren Ordner (linke Spalte im Bild) im Finder um

// Alle oben genannten Schritte sind unkompliziert und ohne Nebenwirkungen // // Nun kommt der schwierige Teil: Benennen Sie den inneren Ordner (mittlere Spalte im Bild) im Finder um (den Ordner auf derselben Ebene wie .xcodeproj).

  • Benennen Sie den inneren Ordner im Finder um, während Xcode geschlossen bleibt
  • Klicken Sie mit der rechten Maustaste auf .xcodeproj und wählen Sie "Paketinhalt anzeigen".
  • Öffnen Sie die .pbxproj-Datei mit Mac TextEdit
  • Suche und ersetze alle "Play" durch "Play2". Um sicherzustellen, dass alles richtig läuft, klicken Sie auf den Pfeil am linken Ende der Suchleiste und ändern Sie das Suchattribut. Ändern Sie "Enthält" in "Vollständiges Wort" und deaktivieren Sie "Groß- / Kleinschreibung ignorieren".
  • Speichern Sie die .pbxproj-Datei
  • Öffnen Sie das Xcode-Projekt und führen Sie es aus
Philip007
quelle
4

So können Sie ein Projekt in XCode4 effektiv umbenennen (EINSCHLIESSLICH DES DATEI-ORDNERS):

  1. Schließen Sie alle geöffneten Projekte vollständig in XCode, um Probleme zu vermeiden
  2. Kopieren Sie das betreffende Projekt in einen neuen Ordner (WICHTIG: BEWAHREN SIE IHR ALTES PROJEKT AUF)
  3. Öffnen Sie das Projekt
  4. Benennen Sie das Projekt selbst in XCode4 um (doppelklicken Sie auf den Projektnamen), ändern Sie den Namen und befolgen Sie die Schritte (Ja zu allem).
  5. Gehen Sie zum Produkt, verwalten Sie Schemata und benennen Sie das Schema um (doppelklicken Sie auf den Schemanamen).
  6. Schließen Sie Ihr Projekt (stellen Sie sicher, dass es vollständig geschlossen ist, da sonst die nächsten Schritte nicht funktionieren).
  7. Gehen Sie im Finder zum Projektordner und klicken Sie mit der rechten Maustaste auf die .xcodeproj-Datei. Wählen Sie dann die Option "Paketinhalt anzeigen".
  8. Klicken Sie dann mit der rechten Maustaste auf die .pbxproj-Datei und öffnen Sie sie mit TextEdit
  9. Ersetzen Sie alle Vorkommen des Ordnernamens, in dem sich die Projekte befanden (Der alte Projektname für den neuen Projektnamen).
  10. Speicher die Datei
  11. Öffnen Sie das Projekt erneut und erstellen Sie es!
Mav55
quelle
Könnten Sie in Schritt 9 detailliertere Anweisungen geben?
Philip007
2

Zuerst ein Xcode-Projekt nicht umbenennen !!!

Wenn Sie müssen, könnte es das Folgende sein - ich habe es nie zum Laufen gebracht, am Ende ein neues Projekt erstellt und alles neu in die vorhandenen Dateien kopiert. Xcode ist so ahh .... Es hat so viele unproduktive Dinge, wie auch versuchen, eine Datei von "Name" in "Name" umzubenennen. Na gut, viel Spaß.

Ich habe die Antwort gefunden oder wie man das umgeht: Öffnen Sie die pbxproj-Datei, indem Sie mit der rechten Maustaste auf "Paketinhalt anzeigen" klicken, und bearbeiten Sie dort eine project.pbxproj-Datei - Sie müssen eine Referenz namens path und einige andere Dinge umbenennen - suchen Sie einfach nach Der Ordnername fügte "/" hinzu.

Das ist es. Hoffe es hilft jemandem.

Chris G.
quelle
2
Ich habe gestern ein Projekt umbenannt und es hat gut funktioniert. Ich bin damit einverstanden, dass Xcode "ahh" ist: D
manmal
Es gibt einen absolut sicheren und unterstützten Weg, dies zu tun - siehe meine Antwort.
Nick Lockwood
2

Hier ist ein weiteres Problem, das Sie beim Ersetzen von Werten in Ihrer * .pbxproj-Datei beachten sollten. Wenn Ihr alter Ordnername FooBar war, haben Sie einen Eintrag in Ihrer * .pbxproj-Datei, der folgendermaßen aussieht:

Pfad = FooBar

Angenommen, Ihr neuer Ordnername lautet Foo Bar. Das heißt, Sie führen einen Raum ein. Dann sollte diese Zeile werden

path = "Foo Bar"

Wenn Sie nur einfach suchen und ersetzen, ist das Ergebnis eine * .pbxproj-Datei, die Xcode nicht analysieren kann. Wenn Ihr neuer Ordnername ein Leerzeichen enthält und der alte Name kein Leerzeichen enthält, müssen Sie die doppelten Anführungszeichen einfügen.

Zampano
quelle
2

Ich fasse für mich zusammen, nachdem ich oben verschiedene Antworten geprüft und mich selbst ausprobiert habe. Angenommen, der aktuelle Projektname lautet ProjAbc und Sie möchten ihn in ProjDef umbenennen:

  1. Beenden Sie den Xcode dieses Projekts.

  2. Duplizieren Sie im Finder den Ordner ABOVE ProjAbc.xcodeproj zur Sicherung.

  3. Benennen Sie im Finder den Ordner ABOVE ProjAbc.xcodeproj frei um, wenn Sie der Meinung sind, dass er für den neuen Projektnamen benötigt wird.

  4. Benennen Sie im Finder den Ordner mit den Quelldateien parallel zu ProjAbc.xcodeproj von ProjAbc in ProjDef um

  5. Öffnen Sie Xcode für ProjAbc.xcodeproj (im Projektnavigator sind alle Dateien im virtuellen Quellordner ProjAbc in roter Farbe).

  6. Klicken Sie in Xcode im Projektnavigator in der linken Seitenleiste auf den (jetzt fehlerhaften) virtuellen Ordner und benennen Sie ihn so um, dass er dem Namen in Finder - ProjDef entspricht. Dadurch werden die roten Dateien im Ordner noch nicht repariert, aber das ist in Ordnung.

  7. Klicken Sie in Xcode (weiterhin den virtuellen Ordner in der linken Seitenleiste auswählen) in der rechten Seitenleiste im Dateiinspektor auf das im folgenden Screenshot gezeigte Symbol, um ein Dateidialogfeld aufzurufen. Wählen Sie im Dateidialog den Ordner aus, den Sie zuvor umbenannt haben (ProjDef). Dadurch wird der virtuelle Ordner erneut mit dem realen Ordner auf der Festplatte verknüpft und die Links zu allen darin enthaltenen Dateien werden automatisch korrigiert. Das Bild zeigt, wo Sie im Dateiinspektor auf das Ordnersymbol klicken müssen

  8. Klicken Sie in Xcode im Projektnavigator auf den ProjAbc-Projektnamen und benennen Sie ihn in ProjDef um.

    • Sie werden aufgefordert: "Projektinhaltselemente umbenennen?". Klicken Sie auf die Schaltfläche "Umbenennen".
    • Sie werden aufgefordert: "Möchten Sie, dass Xcode vor dem Umbenennen des Projekts und ähnlichen Vorgängen automatische Snapshots erstellt?" Klicken Sie entweder auf "Deaktivieren" oder "Aktivieren". Das ist egal.
  9. Öffnen Sie in Xcode jetzt "Build Settings" im ProjDef-Ziel (innerhalb des Projekts ProjDef im Project Navigator). Benennen Sie sowohl den Ordnernamen als auch den Dateinamen der Dateien * -Info.plist und * -Prefix.pch um, um ProjDef anstelle von ProjAbc zu enthalten.

  10. Benennen Sie in Xcode, in Project Navigator, im ProjDef-Ordner für virtuelle Quellen und in "Unterstützende Dateien" die Dateien * -Info.plist und * -Prefix.pch erneut um, um ProjDef anstelle von ProjAbc zu enthalten

  11. Drücken Sie im Xcode-Menü auf Produkt / Schema / Schemata verwalten ... (oder klicken Sie links oben in Xcode auf "ProjAbc"> Schemaname und dann auf "Schemata verwalten ...") und benennen Sie im Dialogfeld Schema von um ProjAbc zu ProjDef, dann drücken Sie "OK". Wenn der Projektname aus einem einzelnen Wort besteht, können Sie ihn gerade ausführen!

  12. Bearbeiten Sie in Xcode die oberste Kommentarzeile in der Datei Supporting Files / * - Prefix.pch und ersetzen Sie ProjAbc durch ProjDef (zweimal). Das Korrigieren dieses Kommentars ist natürlich optional.

  13. Beenden Sie Xcode.

  14. Zeigen Sie im Finder auf ProjDef.xcodeproj und öffnen Sie es im Texteditor. (Öffnen Sie es entweder in TextWrangler.app oder klicken Sie mit der rechten Maustaste und klicken Sie im Popup-Menü auf "Paketinhalt anzeigen" und bearbeiten Sie die Datei project.pbxproj in TextEdit.app.)

  15. Suchen Sie im Texteditor nach "ProjAbc" (Gesamtes Wort, Übereinstimmungsfall), das einmal erscheinen soll (in Absatz: / * Abschnitt PBXNativeTarget beginnen * / in Zeile: productName = ProjAbc;) und ersetzen Sie es durch "ProjDef". In der Tat könnte das Projekt trotzdem ausgeführt werden! Daher ist dieser Schritt optional.

  16. Wenn der Projektname aus zwei oder mehr separaten Wörtern besteht, z. B. "ProjDef Geh", MÜSSEN Sie die nächsten Schritte ausführen: Suchen Sie nach dem Verweis auf den Finder-Ordner des Ordners für virtuelle Quelldateien -

    • Suche nach der Zeile: path = ProjDef Geh;
    • Es wird einmal in Absatz / * ProjDef Geh * / erscheinen
    • Ersetzen Sie es durch die Zeile: path = "ProjDef Geh";
  17. Speichern Sie aus dem Texteditor und beenden Sie den Texteditor.

  18. Das ist es. Wie oben beschrieben, können Sie den Projektnamen direkt am Ende von Schritt 11 ausführen, wenn er aus einem einzelnen Wort besteht.

mlev
quelle
Sie haben dies komplizierter gemacht, als es sein muss. Wenn Sie zuerst Schritt 8 (Umbenennen des Projekts) ausführen, bevor Sie Schritt 4 (Umbenennen des Quellordners) ausführen, werden Ihre Info.plist- und Prefix.pch-Datei automatisch umbenannt, sodass Sie die Schritte 9 und 10 überspringen können.
Nick Lockwood
0

Ich fand die obigen Antworten wirklich nützlich, insbesondere die Antwort von Nick Lockwood.

Ich habe gerade einige Ordner in Xcode 8 umbenannt und bin auf zwei weitere Probleme gestoßen: A) "Fehlt bei Arbeitskopierfehlern" B) Core Data stürzt ab .

So lösen Sie diese beiden Probleme:

EIN) " fehlt bei Arbeitskopierfehlern "

Ich fand die folgende Antwort sehr nützlich: Swift 3 / Xcode 8 Upgrade - Hunderte von DerivedData-Dateien fehlen bei Arbeitskopierfehlern

Grundsätzlich verfügt Xcode 8 über eine strenge Quellcodeverwaltung, die zu den oben genannten Fehlern führen kann. Sie müssen:

  1. Bereinigen Sie die von Xcode abgeleiteten Daten.
  2. Gehen Sie zur Quellcodeverwaltung und klicken Sie auf Status aktualisieren.
  3. Gehen Sie zur Quellcodeverwaltung und klicken Sie auf Festschreiben. Wählen Sie beim Festschreiben alle Dateien in der linken Seitenleiste des Festschreibungsmenüs aus (Rechtsklick -> Alle auswählen).
  4. Sie werden wahrscheinlich eine Fehlermeldung erhalten.
  5. Schließen Sie das Commit-Menü.
  6. Status aktualisieren.
  7. Schließen Sie Ihr Projekt, indem Sie Xcode beenden.
  8. Öffnen Sie Ihr Projekt erneut, aktualisieren Sie den Status und legen Sie es erneut fest.
  9. Dieses Mal sollte das Commit funktionieren.
  10. Klicken Sie auf Projekt -> Reinigen.

Ich gehe davon aus, dass Sie die Quellcodeverwaltung bereits aktiviert haben. Wenn Sie dies nicht getan haben oder wenn Sie meinen Anweisungen nicht folgen, befolgen Sie einfach die detaillierteren Anweisungen unter dem angegebenen Link.

B) Core Data stürzt ab

Das Umbenennen von Ordnern führt manchmal zu Problemen mit den Kerndaten. Es gibt mehrere mögliche Gründe, warum dies so ist, und im Folgenden sind einige Korrekturen aufgeführt, die ich vorschlagen kann:

  1. Falsche AppDelegate Modellnamen. Dies war in meiner Situation der Fall. Gehen Sie zu Ihrem AppDelegate und finden Sie let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME"). Stellen Sie sicher, dass der Name korrekt ist.

    In Zukunft (einige Jahre nach diesem Beitrag, wenn Apple Core Data erneut ändert) oder wenn Sie eine ältere Version von Core Data verwenden, sollten Sie sich AppDelegate genau ansehen. Es gibt wahrscheinlich etwas Funky, das mit Ihren Kerndaten herumspielt.

  2. Falscher Modellname in xcdatamodeld . Gehen Sie zum Finder und öffnen Sie Ihre .xcdatamodeld in einem Texteditor.

Überprüfe das Folgende:

<plist version="1.0">
  <dict>
     <key>_XCCurrentVersionName</key>
     <string>YOUR CORE DATA MODEL NAME.xcdatamodel</string>  <-- Make sure this is correct.
  </dict>
</plist>

Weitere Details hier: Core Data-Modelldateien werden beim Umbenennen nicht geladen

  1. Wenn die beiden oben genannten Punkte nicht funktionieren, versuchen Sie, 1) Ihre Entität zu löschen und dann eine andere Entität hinzuzufügen, die identisch ist, oder 2) Ihr xcdatamodeld zu löschen und dann ein anderes Datenmodell hinzuzufügen, das identisch ist (und sicherzustellen, dass der Name des neuen xcdatamodeld übereinstimmt Was ist in Ihrem AppDelegate und dem Rest Ihres Codes). Tun Sie dies niemals mit einer Live-App - oder stellen Sie in diesem Fall sicher, dass Sie Ihre Kerndaten ordnungsgemäß migrieren.
Hadoren
quelle
0

Wenn Sie eine alte Referenz des Quellprojekts in Ihrem Projekt haben, geben Sie bei der Veröffentlichung des Projekts (jede vorgenommene Änderung wirkt sich auf beide Projekte aus) hier die Lösung

  • Projekt aus dem Quellprojekt veröffentlichen
  • Benennen Sie den Quellordner des Quellprojekts um, bei dem das Referenzproblem behoben ist.
  • Im Dublicate-Projekt wird alles rot. Wählen Sie Ihren aktuellen Projektordner. (Der Screenshot zeigt die Antwort des Stapelüberlaufs mit grünem Häkchen.)

================================================== ======================

Ravi Kumar
quelle