Risposte:
Questa risposta è il culmine di vari altri post e tutorial StackOverflow su Internet portati in un posto per il mio riferimento futuro e per aiutare chiunque altro che si trova ad affrontare lo stesso problema. Alla fine viene dato tutto il credito per altre risposte.
Nel Finder, duplica la cartella del progetto nella posizione desiderata del nuovo progetto. Non rinominare il nome del file .xcodeproj o le cartelle associate in questa fase.
In Xcode, rinominare il progetto. Seleziona il tuo progetto dal riquadro di navigazione (riquadro a sinistra). Nel riquadro Utilità (riquadro a destra) rinomina il tuo progetto, Accetta le modifiche proposte da Xcode.
In Xcode, rinominare gli schemi in "Gestisci schemi", rinominare anche tutti gli obiettivi che si possono avere.
Se non stai utilizzando l'identificatore del pacchetto predefinito che contiene l'attuale PRODUCT_NAME alla fine (quindi verrà aggiornato automaticamente), quindi cambia l'identificatore del pacchetto con quello nuovo che utilizzerai per il tuo progetto duplicato.
Quindi, dopo aver seguito i passaggi precedenti, dovresti avere un progetto Xcode duplicato e rinominato che dovrebbe essere compilato e compilato correttamente, tuttavia la cartella del codice sorgente verrà comunque denominata come nel progetto originale. Ciò non causa alcun problema al compilatore, ma non è la struttura di file più chiara per consentire agli utenti di navigare in SCM, ecc. Per rinominare questa cartella senza interrompere tutti i collegamenti ai file, attenersi alla seguente procedura:
Nel Finder, rinomina la cartella di origine. Questo interromperà il tuo progetto, perché Xcode non rileverà automaticamente le modifiche. Tutti i tuoi elenchi di file xcode perderanno i loro collegamenti con i file effettivi, quindi diventeranno tutti rossi.
In Xcode, fai clic sulla cartella virtuale che hai rinominato (questo sarà probabilmente in alto, proprio sotto il tuo .xcodeproject) Rinomina questo per abbinare il nome nel Finder, questo non risolverà nulla e rigorosamente non è un passaggio richiesto ma è bello avere i nomi dei file corrispondenti.
In Xcode, seleziona la cartella che hai appena rinominato nel riquadro di navigazione. Quindi nel riquadro Utilità (all'estrema destra) fai clic sull'icona che sembra una cartella grigio scuro, proprio sotto il menu a discesa "Posizione". Da qui, vai alla cartella rinominata nel Finder e fai clic su "Scegli". Ciò associerà automaticamente tutti i tuoi file e non dovrebbero più apparire rossi nel riquadro di navigazione di Xcode.
Nelle impostazioni di build del tuo progetto / target, cerca il vecchio nome della cartella e rinomina manualmente tutte le occorrenze che trovi. Normalmente ce n'è uno per prefix.pch e uno per info.plist, ma potrebbe essercene di più.
Se stai utilizzando librerie di terze parti (Testflight / Hockeyapp / ecc.) Dovrai anche cercare "Percorsi di ricerca delle librerie" e rinominare qui anche qualsiasi occorrenza del vecchio nome del file.
Ripetere questo processo per tutte le cartelle del codice sorgente del test unità che il progetto può contenere, il processo è identico.
Ciò dovrebbe consentire di duplicare e rinominare un progetto xcode e tutti i file associati senza dover modificare manualmente i file xcode e rischiare di rovinare tutto.
Mille grazie a Nick Lockwood e Pauly Glott per aver fornito le risposte separate a questo problema.
*.xcodeproj/project.pbxproj
file c'erano molte cose che contenevano il percorso della cartella originale. In particolare, la build non andava a buon fine perché continuava a cercare un info.plist nella cartella originale.
Sto pubblicando questo dato che ho sempre avuto difficoltà a rinominare un progetto XCode
.
Rinominare il progetto è buono e semplice ma questo non rinomina la cartella di origine. Ecco un passo per passo di quello che ho fatto che ha funzionato alla grande in Xcode 4 e 5 grazie ai link qui sotto.
Collegamenti REF:
Rinomina progetto.
Rinomina cartella di origine e altri file.
1- Esegui il backup del tuo progetto.
Se stai usando git, esegui il commit di eventuali modifiche, esegui una copia dell'intera cartella del progetto e esegui il backup in time machine prima di apportare eventuali modifiche (questo passaggio non è necessario ma lo consiglio vivamente).
2- Apri il tuo progetto.
3- Fai doppio clic lento o premi invio sul nome del progetto (icona blu in alto) e rinominalo come preferisci.
NOTA: dopo aver rinominato il progetto e premuto 'Invio', verrà suggerito di modificare automaticamente tutte le voci relative al nome del progetto e, se lo si desidera, sarà possibile deselezionarne alcune. Seleziona tutti e fai clic su OK.
4- Rinomina lo schema
a) Fai clic sul menu accanto al pulsante di arresto e seleziona Gestisci schemi.
b) Fai un clic lento o premi invio sul vecchio schema di nomi e rinominalo come preferisci.
c) Fare clic su OK.
5 - Compilare ed eseguire per assicurarsi che funzioni.
NOTE: A questo punto tutti i file di progetto importanti devono essere rinominati ad eccezione dei commenti nelle classi create al momento della creazione del progetto né della cartella di origine. Successivamente rinomineremo la cartella nel file system.
6- Chiudere il progetto.
7- Rinomina la cartella principale e quella di origine.
8- Fare clic con il tasto destro del mouse sul pacchetto di progetti.xcodeproj
file del e selezionare “Mostra contenuto pacchetto” dal menu contestuale. Apri il file .pbxproj con qualsiasi editor di testo.
9- Cerca e sostituisci qualsiasi occorrenza del nome della cartella originale con il nome della nuova cartella.
10- Salva il file.
11- Apri il progetto XCode, testalo.
12- Fatto.
Esiste uno strumento per rinominare i progetti in Xcode che non ho provato abbastanza per commentarlo. https://github.com/appculture/xcode-project-renamer
A partire da XCode 7 questo è diventato molto più semplice.
Apple ha documentato il processo sul loro sito: https://developer.apple.com/library/ios/recipes/xcode_help-project_editor/RenamingaProject/RenamingaProject.html
Aggiornamento: collegamento XCode 8: http://help.apple.com/xcode/mac/8.0/#/dev3db3afe4f
Sto usando questo script dopo aver rinominato il mio progetto iOS. Aiuta a cambiare il nome delle directory e sincronizzare i nomi.
NOTA: sarà necessario modificare manualmente il nome dello schema.
Nel codice di esempio per il libro "Instant OpenCV per iOS" ho trovato uno script bash che copia un progetto da una cartella a un'altra.
Facendo una piccola ricerca ho trovato un post sul blog di quello che sembra essere l'autore originale della sceneggiatura: http://mohrt.blogspot.it/2009/01/renaming-xcode-project-from-command.html , dove puoi scaricare lo script . Ho provato e eseguendolo dal terminale in questo modo
sh renameXcodeProject.sh <name-of-existing-folder> <name-of-folder-to-create>
funziona bene.
Ulteriori informazioni possono essere trovate aprendo il file con un editor di testo. spero che aiuti
Uso Xcode 6+ e faccio solo:
*.xcodeproj or *.xcworkspace
Qui è fatto, ma il nome della finestra Xcode e *.xcodeproj or *.xcworkspace
ancora <old-name>
. Quindi faccio:
pop install
<new name>.xcworkspace
Un'altra cosa da provare!
Quando ho copiato tutti i miei file, aperto il progetto e rinominato, tutto è cambiato con il mio nuovo nome di progetto tranne la destinazione del test! Ho ricevuto un errore del linker che diceva che mancava un file chiamato "myOldProjectname.app". Ecco cosa l'ha risolto:
Fare clic sulle impostazioni del progetto e selezionare il target di prova
Fai clic su Impostazioni build e cerca "host di test"
Controlla quei 2 percorsi di file. È probabile che quei 2 percorsi puntino ancora al nome del tuo vecchio progetto.
Spero che aiuti!
Per chiunque abbia problemi con i crash dello storyboard dopo aver copiato il tuo progetto, vai su Main.storyboard sotto Identity Inspector.
Quindi, controlla che il tuo modulo attuale sia il modulo rinominato corretto e non quello vecchio.
Sto usando un semplice script BASH per rinominare.
Uso: ./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}"
Appunti:
.git
e.DS_Store