Duplica e rinomina il progetto Xcode e le cartelle associate [chiuso]


195

Vorrei poter duplicare un intero progetto Xcode, rinominare il progetto e i file associati senza che Xcode diventi mentale e senza dover reimportare manualmente tutti i file nel progetto.

Risposte:


368

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.

Duplicazione di un progetto Xcode

  • 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.

Rinominare la cartella di origine

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.

Icona da cliccare

  • 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.

Crediti

Mille grazie a Nick Lockwood e Pauly Glott per aver fornito le risposte separate a questo problema.


3
Dopo aver seguito quanto sopra ho appena cercato il "vecchio nome" nel progetto del foro e ho trovato ciò che doveva essere cambiato (intestazione prefisso) e si è compilato bene con "nuovo nome" e in un altro posto. Ottimo tutorial - proprio quello di cui avevo bisogno. (Testato con Xcode 5.0.1 / iOS 7.0)
Mac

Questo non mi ha portato fino in fondo (su Xcode 5.0.2 qui, con un progetto che è stato migrato dalla 4.6.3 alla 5.0.0). All'interno del *.xcodeproj/project.pbxprojfile 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.
Steven Lu,

2
Per curiosità, ecco una specie di vecchio modo per farlo ... stackoverflow.com/questions/10006482/… (risposta di Daniel)
Fattie,

1
Xcode 7.1.1 si blocca per me al primo ostacolo: rinominare il progetto. Investigherà, ma qualcun altro lo ha trovato?
HughHughTeotl,

5
Manca come gestire quando si ha l'integrazione di Cocoapods nel progetto. Ho trovato un link utile anche per gestirlo: h4ckish.com/2015/01/22/renaming-your-cocoapods-ios-project
KK

30

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.

MODIFICA 10/11/19:

Esiste uno strumento per rinominare i progetti in Xcode che non ho provato abbastanza per commentarlo. https://github.com/appculture/xcode-project-renamer


2
La domanda era per duplicare e quindi rinominare il progetto copiato. Questa risposta è solo per rinominare un progetto esistente.
martinjbaker,

1
Questo, per me, è l'approccio più semplice. Basta copiare la cartella del progetto originale, ad esempio MyProject, in modo ricorsivo su "MyNewProject". Quindi apri MyNewProject e procedi con le istruzioni di fs_tigre. Sono sorpreso che né Android Studio né Xcode forniscano un'opzione "File-> Progetto clone" che sarebbe così conveniente. Forse un bel progetto di plugin per qualcuno ( nshipster.com/xcode-plugins )?
Blisterpeanuts,

L'unico metodo che ha funzionato per me - XCode 8.2
GreenAsJade

2
Passaggio 10.1 - Se si dispone di un collegamento tra file di intestazione e / o diritti, rinominarli per riflettere il nuovo nome. Se usi Cocoapods, modifica il nome nel tuo file pod.
David Lari,

6

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


2
Questo funziona solo per rinominare gli interni dell'app, ma esternamente le cartelle per l'app rimangono invariate
smac89


2

Sto usando questo script dopo aver rinominato il mio progetto iOS. Aiuta a cambiare il nome delle directory e sincronizzare i nomi.

http://github.com/ytbryan/rename

NOTA: sarà necessario modificare manualmente il nome dello schema.


1

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


0

Uso Xcode 6+ e faccio solo:

  • Copia tutti i file nelle cartelle del progetto in nuove cartelle (con il nuovo nome).
  • Aperto *.xcodeproj or *.xcworkspace
  • Cambia il nome del progetto.
  • Fare clic sullo schema ed eliminare l'attuale chema e aggiungerne uno nuovo.

Qui è fatto, ma il nome della finestra Xcode e *.xcodeproj or *.xcworkspaceancora <old-name>. Quindi faccio:

  • pop install
  • Aperto <new name>.xcworkspace

0

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:

  1. Fare clic sulle impostazioni del progetto e selezionare il target di prova inserisci qui la descrizione dell'immagine

  2. Fai clic su Impostazioni build e cerca "host di test" inserisci qui la descrizione dell'immagine

  3. Controlla quei 2 percorsi di file. È probabile che quei 2 percorsi puntino ancora al nome del tuo vecchio progetto. inserisci qui la descrizione dell'immagine

Spero che aiuti!


0

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.


0

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:

  1. Questo script ignorerà tutti i file simili .git e.DS_Store
  2. Non funzionerà se il vecchio nome / nuovo nome contiene spazi
  3. Potrebbe non funzionare se si utilizzano pod (non testati)
  4. Il nome dello schema non verrà modificato (comunque il progetto viene eseguito e compilato normalmente)
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.