Rinominare il progetto xcode 4 e la cartella effettiva


119

So come rinominare il progetto in Xcode 4, ma come si rinomina la cartella sorgente? Il fatto è che rinominare il progetto in Xcode, viene rinominato solo all'interno di Xcode (sebbene sia un progresso rispetto al precedente) - ma perché Xcode non sta rinominando la cartella nel filesystem non lo so.


Hai provato a rinominare la cartella?
David Brown

2
Ho un mio amico, e tutti i file nel file di progetto mancano allora - sono tutti contrassegnati con read, per non avere alcun refrence. Ma ho trovato l'anima - vedi la mia risposta. Grazie per la risposta
Chris G.

Risposte:


259

Puoi farlo da Xcode senza ricorrere alla modifica manuale del file pbxproj in un editor di testo!

Ecco come:

  1. Rinomina la tua cartella sorgente nel Finder. Questo interromperà il progetto inizialmente perché Xcode non rileva automaticamente quando le cartelle reali a cui puntano le cartelle del progetto virtuale (giallo) vengono modificate, quindi tutti i file all'interno di quella cartella diventeranno rossi in Xcode. Non preoccuparti, lo sistemeremo nel passaggio 3.

  2. In Xcode, fai clic sulla cartella virtuale (ora interrotta) nella barra laterale di sinistra e rinominala in modo che corrisponda al nome nel Finder (puoi effettivamente chiamarla come vuoi o non rinominarla affatto, ma sarebbe folle ). Ciò non risolverà i file rossi all'interno della cartella, ma va bene.

  3. Nella barra laterale di destra in Xcode, fai clic sull'icona mostrata nello screenshot qui sotto per aprire una finestra di dialogo. Seleziona la cartella che hai precedentemente rinominato. Questo associerà nuovamente la cartella virtuale alla cartella reale sul disco e correggerà automaticamente i collegamenti a tutti i file all'interno.

  4. Nelle impostazioni di build, cerca il vecchio nome della cartella e rinomina manualmente tutte le occorrenze che trovi. Di solito ce ne saranno due, oldfolder / prefix.pch e oldfolder / info.plist, ma potrebbero essercene altri.

Tutto fatto!

inserisci qui la descrizione dell'immagine

EDIT: questa opzione è ancora presente in Xcode 5, ma è utilmente nascosta per impostazione predefinita. Per visualizzarlo, fai clic sulla sottile intestazione "Identità e tipo" nell'inspector sopra il pannello "Impostazioni testo" per espanderlo.


Eccellente, aggiungerei solo che se la ridenominazione fa parte della ridenominazione dell'intero progetto, c'è un altro passaggio: cambia il "Nome del progetto" nella mano destra, nell'area in alto e consenti a Xcode di rinominare tutto internamente in modo che corrisponda.
RedYeti

1
Tutto ha funzionato alla grande e il progetto è stato rinominato, ma il messaggio di build in alto e il nome del simulatore hanno mantenuto il vecchio nome, per cambiare questo: vai al menu del prodotto, gestisci gli schemi e rinomina lo schema
BlackTigerX

Vero. Puoi anche semplicemente eliminare lo schema e premere il pulsante di creazione automatica degli schemi.
Nick Lockwood

Qualcuno sa come farlo in xCode 5? Non vedo più quel pulsante magico. :(
Jason

È ancora lì, è solo nascosto. Devi espandere la riga chiamata "Identità e tipo" nell'ispettore facendo clic su di essa. Mi ci sono voluti circa 20 minuti per capirlo!
Nick Lockwood

112

L'ho fatto dozzine di volte:

  • Rinomina il progetto facendo clic, quindi modificando il titolo nel tuo Xcode Project Navigator.
  • Chiudi Xcode.
  • Rinomina la cartella di origine.
  • Dal Finder, apri il .pbxprojfile all'interno del pacchetto del progetto (menu contestuale "Mostra contenuto pacchetto") con qualsiasi editor di testo.
  • Cerca e sostituisci qualsiasi occorrenza del nome della cartella originale con il nuovo nome della cartella.
  • Salva il file.
  • Apri il progetto Xcode.

3
Ricorda solo di farlo dopo aver rinominato il progetto
Aram Kocharyan

Seguo le tue istruzioni e fallisco. Penso che il problema sia in "Cerca e sostituisci qualsiasi occorrenza del nome della cartella originale con il nuovo nome della cartella". Potreste fornire istruzioni più dettagliate su questo passaggio? Grazie
Philip007

La modalità di ricerca e sostituzione dipende dall'editor di testo o dallo strumento scelto. Nel mio caso, con vim: <ESC>:% s / old / new / g <ENTER> Può fallire se c'è qualcos'altro nel file di progetto con un nome in conflitto.
djromero

Grazie @madmw, ho capito. Sto usando TextEdit. Penso che il trucco sia sostituire l'attributo "Contiene" con "Parola completa" durante la ricerca e sostituzione. E inserisco le istruzioni dettagliate di seguito.
Philip 007

Funziona a meraviglia! Quando si rinomina la cartella di una destinazione, ad esempio una libreria statica, ho anche dovuto fare confusione con i miei schemi e rinominare anche l'intestazione del prefisso e il file plist delle informazioni.
Tim Potter

12

Attività: rinomina "Play" in "Play2" sia in Xcode che nel Finder

Cambia questo:

inserisci qui la descrizione dell'immagine

A questa:

inserisci qui la descrizione dell'immagine

STEPS:

// Prima di tutto, esegui il backup del progetto nel Finder!

  • Rinomina progetto in Xcode Project navigator // Fai clic sul nome del progetto, quindi premi invio
  • Rinomina il gruppo nel navigatore del progetto Xcode // non influisce sul nome della cartella nel Finder
  • Chiudi Xcode
  • Rinomina la cartella esterna (colonna di sinistra nell'immagine) nel Finder

// Tutti i passaggi precedenti sono semplici e senza effetti collaterali // // Ora arriva la parte difficile: rinomina la cartella interna (colonna centrale nell'immagine) nel Finder (quella allo stesso livello con .xcodeproj)

  • Rinomina la cartella interna nel Finder mantenendo chiuso Xcode
  • Fare clic con il tasto destro del mouse su .xcodeproj, selezionare "Mostra contenuto pacchetto"
  • Apri il file .pbxproj con Mac TextEdit
  • Cerca e sostituisci tutto "Play" con "Play2". Per garantire che tutto vada bene, fai clic sulla freccia all'estremità sinistra della barra di ricerca e modifica l'attributo di ricerca. Cambia "Contiene" in "Parola completa" e deseleziona "Ignora maiuscole e minuscole"
  • Salva il file .pbxproj
  • Apri il progetto Xcode ed esegui

4

Ecco come rinominare un progetto in modo efficace in XCode4 (INCLUSA LA CARTELLA DEI FILE):

  1. Chiudi tutti i progetti aperti completamente in XCode per evitare problemi
  2. Copia il progetto in questione in una nuova cartella (IMPORTANTE: MANTIENI UN BACKUP DEL TUO VECCHIO PROGETTO)
  3. Apri il progetto
  4. Rinomina il progetto stesso in XCode4 (fai doppio clic sul nome del progetto), cambia il nome e segui i passaggi (sì a tutto)
  5. Vai al prodotto, gestisci gli schemi e rinomina lo schema (fai doppio clic sul nome dello schema)
  6. Chiudi il tuo progetto (assicurati che sia completamente chiuso altrimenti i passaggi successivi non funzioneranno)
  7. Nel Finder vai alla cartella Project e fai clic con il tasto destro sul file .xcodeproj, quindi seleziona l'opzione "Mostra contenuto pacchetto"
  8. Quindi fai clic con il pulsante destro del mouse sul file .pbxproj e aprilo con TextEdit
  9. Sostituisci tutte le occorrenze del nome della cartella in cui vivevano i progetti (il vecchio nome del progetto per il nuovo nome del progetto)
  10. Salva il file
  11. Apri di nuovo il progetto e crealo!

Potreste fornire istruzioni più dettagliate sul passaggio 9?
Philip007

2

Prima di tutto, non rinominare un progetto Xcode !!!

Se è necessario, potrebbe trattarsi di quello che segue: non l'ho mai fatto funzionare, ho finito per creare un nuovo progetto e ho iniziato a copiare i file esistenti. Xcode è così ahh .... Ha così tante cose non produttive, come provare anche a rinominare un file da "Nome" a "nome". Bene, bene divertiti.

Ho trovato la risposta o come aggirare il problema: apri il file pbxproj facendo clic con il pulsante destro del mouse su "Mostra contenuto pacchetto" e lì modifichi un file project.pbxproj - devi rinominare un riferimento chiamato percorso e alcune altre cose - cerca solo il nome della cartella aggiunto "/".

Questo è tutto. Spero che aiuti qualcuno.


2
Ieri ho rinominato un progetto e ha funzionato bene. Sono d'accordo che Xcode è "ahh" però: D
manmal

C'è un modo perfettamente sicuro e supportato per farlo - vedi la mia risposta.
Nick Lockwood

2

Ecco un altro problema di cui dovresti essere a conoscenza durante la sostituzione dei valori nel tuo file * .pbxproj. Se il nome della tua vecchia cartella era FooBar avrai una voce nel tuo file * .pbxproj simile a questa:

percorso = FooBar

Supponiamo che il nome della nuova cartella sia Foo Bar. Cioè, stai introducendo uno spazio. Quindi, questa linea dovrebbe diventare

path = "Foo Bar"

Se fai solo una semplice ricerca e sostituzione, il risultato sarà un file * .pbxproj che Xcode non può analizzare. Se il nome della nuova cartella ha uno spazio e il vecchio nome non aveva uno spazio, assicurati di includere le virgolette doppie.


2

Sto riassumendo da solo, dopo aver esaminato varie risposte sopra e aver provato me stesso. Supponiamo che il nome del progetto corrente sia ProjAbc e che tu voglia rinominarlo in ProjDef:

  1. Esci da Xcode di quel progetto.

  2. Nel Finder, duplica la cartella SOPRA ProjAbc.xcodeproj per il backup.

  3. Nel Finder, rinomina liberamente la cartella SOPRA ProjAbc.xcodeproj se ritieni di averne bisogno per adattarsi al nome del nuovo progetto.

  4. Nel Finder, rinomina la cartella dei file di origine parallelamente a ProjAbc.xcodeproj da ProjAbc a ProjDef

  5. Apri Xcode per ProjAbc.xcodeproj (in Project Navigator, tutti i file nella cartella sorgente virtuale ProjAbc saranno in colore rosso).

  6. In Xcode, fai clic sulla cartella virtuale (ora interrotta) nel Navigatore di progetto nella barra laterale di sinistra e rinominala in modo che corrisponda al nome in Finder - ProjDef. Ciò non risolverà ancora i file rossi all'interno della cartella, ma va bene.

  7. In Xcode, (selezionando ancora la cartella virtuale nella barra laterale di sinistra) nella barra laterale di destra, in Impostazioni file, fai clic sull'icona mostrata nello screenshot qui sotto per visualizzare una finestra di dialogo dei file. Nella finestra di dialogo del file, seleziona la cartella che hai precedentemente rinominato (ProjDef). Questo associerà nuovamente la cartella virtuale alla cartella reale sul disco e correggerà automaticamente i collegamenti a tutti i file all'interno. L'immagine mostra dove fare clic sull'icona della cartella in Impostazioni file

  8. In Xcode, in Project Navigator, fai clic sul nome del progetto ProjAbc e rinominalo in ProjDef.

    • Ti verrà chiesto: "Rinominare gli elementi di contenuto del progetto?". Fare clic sul pulsante "Rinomina".
    • Ti verrà chiesto: "Desideri che Xcode scatti istantanee automatiche prima di rinominare il progetto e operazioni simili?". Fare clic su "Disabilita" o "Abilita". Non importa.
  9. In Xcode, ora apri "Build Settings" all'interno di ProjDef target (all'interno del progetto ProjDef in Project Navigator). Rinomina sia il nome cartella che il nome file di entrambi i file * -Info.plist e * -Prefix.pch per contenere ProjDef invece di ProjAbc.

  10. In Xcode, in Project Navigator, nella cartella delle sorgenti virtuali di ProjDef, in "Supporting Files", rinomina nuovamente entrambi i file * -Info.plist e * -Prefix.pch per contenere ProjDef invece di ProjAbc

  11. Nel menu Xcode, premi Prodotto / Schema / Gestisci schemi ... (o fai clic su "ProjAbc"> Nome schema nella barra dello schema nella parte superiore sinistra di Xcode e premi "Gestisci schemi ...") e nella finestra di dialogo rinomina Schema da ProjAbc a ProjDef, quindi premere il pulsante "OK". Se il nome del progetto è composto da una sola parola, puoi eseguirlo subito!

  12. In Xcode, modifica la riga di commento in alto nel file Supporting Files / * - Prefix.pch e sostituisci ProjAbc con ProjDef (2 volte). Ovviamente correggere questo commento è facoltativo.

  13. Esci da Xcode.

  14. In Finder, punta a ProjDef.xcodeproj e aprilo nell'editor di testo. (Aprilo in TextWrangler.app o, fai clic con il pulsante destro del mouse e nel menu a comparsa premi "Mostra contenuto pacchetto", quindi modifica il file project.pbxproj in TextEdit.app)

  15. Nell'editor di testo, cerca "ProjAbc" (parola intera, maiuscole / minuscole) che dovrebbe apparire una volta (nel paragrafo: / * Begin PBXNativeTarget section * / in line: productName = ProjAbc;) e sostituiscilo con "ProjDef". In effetti, il progetto potrebbe essere eseguito comunque !, quindi questo passaggio è facoltativo.

  16. se il nome del progetto è composto da 2 o più parole separate, come "ProjDef Geh", DEVI eseguire i passaggi successivi: Cerca il riferimento alla cartella Finder della cartella dei file sorgente virtuali -

    • Cerca la riga: path = ProjDef Geh;
    • Apparirà una volta, nel paragrafo / * ProjDef Geh * /
    • Sostituiscilo con la riga: path = "ProjDef Geh";
  17. Salva dall'editor di testo e esci dall'editor di testo.

  18. Questo è tutto. Come scritto sopra, se il nome del progetto è composto da una singola parola, puoi eseguire direttamente alla fine del passaggio 11.


L'hai reso più complicato di quanto dovrebbe essere. Se esegui il passaggio 8 (rinominare il progetto) prima, prima del passaggio 4 (rinominare la cartella di origine), il file Info.plist e Prefix.pch verrà rinominato automaticamente, quindi puoi saltare i passaggi 9 e 10.
Nick Lockwood

0

Ho trovato le risposte di cui sopra davvero utili, specialmente la risposta di Nick Lockwood.

Ho appena rinominato un paio di cartelle in Xcode 8 e ho riscontrato altri due problemi: A) "Mancanza di errori di copia di lavoro" B) Arresti anomali di Core Data .

Come risolvere questi due problemi:

A) " mancante da errori di copia di lavoro "

Ho trovato la risposta di seguito molto utile: Swift 3 / Xcode 8 Upgrade - 100 di file DerivedData mancanti da errori di copia di lavoro

Fondamentalmente Xcode 8 ha un rigoroso controllo del codice sorgente, che può portare agli errori di cui sopra. Devi:

  1. Pulisci i dati derivati ​​da Xcode.
  2. Vai al controllo del codice sorgente e fai clic su Aggiorna stato.
  3. Vai al controllo del codice sorgente e fai clic su Conferma; seleziona tutti i file sulla barra laterale sinistra del menu commit quando effettui il commit (clic destro -> Seleziona tutto).
  4. Probabilmente riceverai un errore.
  5. Chiudi il menu Conferma.
  6. Aggiorna stato.
  7. Chiudi il tuo progetto uscendo da Xcode.
  8. Riapri il tuo progetto, aggiorna lo stato, esegui nuovamente il commit.
  9. Questa volta il commit dovrebbe funzionare.
  10. Fare clic su Progetto -> Pulisci.

Presumo che tu abbia già abilitato il controllo del codice sorgente. Se non l'hai fatto, o se rimani bloccato seguendo le mie istruzioni, segui le istruzioni più dettagliate nel link fornito.

B) Core Data si arresta in modo anomalo

Rinominare le cartelle a volte rovina i dati di base. Ci sono diversi possibili motivi per cui è così, e di seguito sono riportate alcune correzioni che posso suggerire:

  1. Nome del modello AppDelegate non corretto . Questo era il caso nella mia situazione. Vai al tuo AppDelegate e trova let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME"). Assicurati che il nome sia corretto.

    In futuro (diversi anni dopo questo post, quando Apple cambierà nuovamente Core Data) o se stai utilizzando una versione precedente di Core Data, dai un'occhiata ad AppDelegate. Probabilmente c'è qualcosa di strano che sta incasinando i tuoi dati principali.

  2. Nome del modello errato in xcdatamodeld . Vai al Finder e apri il tuo .xcdatamodeld in un editor di testo.

Controlla quanto segue:

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

Maggiori dettagli qui: i file del modello Core Data non vengono caricati durante la ridenominazione

  1. Se le due cose sopra non funzionano, prova a 1) eliminare la tua entità e quindi aggiungere un'altra entità identica o 2) eliminare il tuo xcdatamodeld e quindi aggiungere un altro modello di dati che è identico (e assicurati che il nome del nuovo xcdatamodeld corrisponda cosa c'è nel tuo AppDelegate e nel resto del tuo codice). Non farlo mai con un'app live o, se lo fai, assicurati di migrare correttamente i tuoi dati core mentre lo fai.

0

Se hai un vecchio riferimento del progetto sorgente nel tuo progetto, Quando pubblichi il progetto (ogni modifica apportata ha effetto su entrambi i progetti) qui la soluzione

  • Duplica progetto dal progetto sorgente
  • Rinomina la cartella di origine del progetto di origine che interrompe il problema di riferimento.
  • Nel progetto pubblico tutto diventa rosso scegli la tua cartella di progetto corrente. (lo screenshot è mostrato in verde tick risposta di stackoverflow)

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.