Come posso rinominare completamente un progetto Xcode (ovvero inclusivo di cartelle)?


471

Ho un progetto chiamato XXX. Voglio rinominare questo progetto inYYY .

Si noti che XXXè un termine estremamente comune (ad esempio "dati", o semplicemente "progetto"), e quindi non è possibile una semplice ricerca e sostituzione di RegEx, senza il rischio di corrompere i file di configurazione del progetto.

La mia directory di progetto corrente contiene i seguenti elementi:

  • XXX
  • XXXTests
  • XXX.xcodeproj

e voglio rinominarli in:

  • YYY
  • YYYTests
  • YYY.xcodeproj

... rispettivamente, con le modifiche necessarie che si riflettono nel mio file di progetto.

Come posso ottenere questo risultato senza dover creare e popolare manualmente un nuovo progetto?


Modifica: è assolutamente ridicolo che questa sia diventata la mia domanda più votata.


Possibile duplicato del progetto Rename xcode
Ron Myschuk,

1
Ho

1
anche chiesto e risposto qui stackoverflow.com/questions/8262613/… con 189 voti
positivi

Se si desidera solo per rinominare il nome icona dell'applicazione, controllare questa risposta stackoverflow.com/questions/238980/...
LYU

Risposte:


1021

Passaggio 1: rinominare il progetto

  1. Fare clic sul progetto che si desidera rinominare nel "Navigatore progetto" nel pannello di sinistra della finestra Xcode.
  2. Nel pannello di destra, seleziona "Impostazioni file" e il nome del tuo progetto dovrebbe essere trovato sotto "Identità e tipo". Modificalo con il tuo nuovo nome.
  3. Quando la finestra di dialogo chiede se rinominare o meno i contenuti del progetto, fare clic su "Rinomina".

Passaggio 2: rinominare lo schema

  1. Nella parte superiore della finestra, accanto al pulsante "Stop", c'è uno schema per il tuo prodotto con il suo vecchio nome; fai clic su di esso, quindi seleziona "Gestisci schemi ...".
  2. Fai clic sul vecchio nome nello schema e diventerà modificabile; cambia il nome e fai clic su "Chiudi".

Passaggio 3: rinominare la cartella con le risorse

  1. Esci da Xcode.
  2. Nella cartella principale con nome corretto, è presente un file .xcodeproj appena nominato con la cartella OLD con nome errato. Rinominare la cartella OLD con il nuovo nome (se si utilizza Git, è possibile eseguire in git mv oldname newnamemodo che Git riconosca che si tratta di una mossa, piuttosto che eliminare / aggiungere nuovi file).
  3. Riapri il progetto in Xcode e vedrai un avviso "La cartella OLD non esiste"; respingere l'avvertimento.
  4. Nel "Navigatore progetti" nel riquadro di sinistra, fai clic sulla cartella OLD di livello superiore.
  5. Nel pannello di destra, in "Identità e tipo", modifica il campo "Nome" dal vecchio nome al nuovo nome.
  6. Appena sotto quel campo c'è un menu "Posizione". Fai clic sull'icona della cartella vicina e scegli la cartella rinominata.

Passaggio 4: rinominare i dati del plist di build

  1. Fai clic sul progetto nel "Navigatore progetto" a sinistra e nel pannello principale seleziona "Impostazioni di costruzione".
  2. Cerca "plist" nelle impostazioni.
  3. Nella sezione Packaging, vedrai Info.plisteProduct Bundle Identifier .
  4. Se è stato inserito un nome Info.plist , aggiornalo.
  5. Fai lo stesso per Product Bundle Identifier .
  6. Se usi SwiftUI, cerca "Risorse di sviluppo" e aggiorna il percorso.

Passaggio 5: ripetere il passaggio 3 per i test (se presenti)

Passaggio 6: ripetere il passaggio 3 per i dati principali se il nome corrisponde al nome del progetto (se presente)

Passaggio 7: ricostruire il progetto

  1. Command+ Shift+ Kper pulire
  2. Command+ Bper costruire

5
Puoi cambiare il nome del progetto ma i nomi delle cartelle sono sempre gli stessi. Sai come cambiarli
Coder221

5
Grazie! per Xcode 8, il file dei diritti dovrebbe essere rinominato manualmente.
Jiulong Zhao,

54
Quando esegui il passaggio 3 parte 2 (rinomina della cartella), se stai usando git, ti consiglio git mv oldname newname, in questo modo git riconoscerà che si trattava di una mossa, non di eliminare e aggiungere tutti i tuoi file.
Aaron Ash,

14
perfetto, funziona perfettamente in Xcode 8.2, solo una cosa da sottolineare qui mentre si modifica lo schema se facendo clic sul nome dello schema una volta non lo rende modificabile, selezionare lo schema e premere il tasto Invio per rendere modificabile il nome dello schema.
Khurram Shehzad,

5
Non dimenticare di trovare e sostituire altre istanze del vecchio nome del tuo progetto.
Derek Soike,

194

Per aggiungere all'eccellente risposta di @ luke-west:

Quando si utilizzano CocoaPods

Dopo il passaggio 2:

  1. Esci da XCode.
  2. Nella cartella principale, rinominare OLD.xcworkspacein NEW.xcworkspace.

Dopo il passaggio 4:

  1. In XCode: scegli e modifica Podfiledal navigatore del progetto. Dovresti vedere una targetclausola con il VECCHIO nome. Cambia in NUOVO.
  2. Esci da XCode.
  3. Nella cartella del progetto, eliminare il OLD.podspecfile.
  4. rm -rf Pods/
  5. Correre pod install .
  6. Apri XCode.
  7. Fai clic sul nome del tuo progetto nel navigatore del progetto.
  8. Nel riquadro principale, passare a Build Phases scheda.
  9. Sotto Link Binary With Libraries, cercalibPods-OLD.a ed eliminalo.
  10. Se hai un'intestazione Bridging obiettivo-c vai su Crea impostazioni e modifica la posizione dell'intestazione da OLD / OLD-Bridging-Header.h a NEW / NEW-Bridging-Header.h
  11. Pulisci e corri.

7
Usando Xcode 8.3.2 ho dovuto usare cocoapods-deintegrate e reinstallare tutti i pod per eseguire il progetto con il nuovo nome.
SteffenK,

2
@SteffenK c'è una differenza tra quel metodo e rm -rf Pods /? Considerando che hai fatto tutti gli altri passaggi?
Vaiden,

1
Potresti elaborare per favore? Quali tracce?
Vaiden,

2
@Vaiden grazie mille per la chiarezza extra quando si lavora con CocoaPods! Il processo ha creato un secondo riferimento, che era strano, ma dopo averlo rimosso tutto funzionava perfettamente! Grazie ancora! :)
Matt Swift,

4
Qualcuno potrebbe dirmi dove posso trovare il file OLD.podspec menzionato in questa risposta? Nel mio progetto ho ricevuto alcuni file come 'Podfile' / 'Podfile.lock' / 'Pods.xcodeproj' e ho una cartella vuota chiamata 'Local Podspecs', ma non riesco a trovare un file
.podspec

51

Una soluzione più rapida usando i comandi di shell (funziona anche con CocoaPods):

PER FAVORE cdPER A UN REPOSITORIO NON GIT PRIMA DI PROCEDERE ⚠️

Step 1 - Prerequisiti

  1. Copia la cartella del tuo progetto originale in un /NewProjectFolder ESTERNO temporaneo FUORI dal tuo repository git. ⚠️ le modifiche a .git potrebbero danneggiare il tuo indice git 💥 ☠

Passaggio 2: aprire il terminale

Ora rinomineremo il progetto da oldNamea NewProject.

  • Chiudi XCode.
  • Vai al tuo /NewProjectFolder.
cd /Path/to/your/NewProjectFolder
  • Installa gli strumenti extra necessari.
brew install rename ack
  • Rinominare i file e le directory contenenti la stringa di origine. Dovrai ESEGUIRE QUESTO COMANDO DUE VOLTE , perché le directory verranno rinominate per prime, quindi i file e le directory all'interno di questi verranno rinominati alla successiva iterazione.
find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'NewProject'
  • Controlla se tutti i file contenenti la stringa di origine sono stati rinominati. Dovresti vedere un output vuoto.
find . -name 'oldName*'
  • Sostituisci tutte le occorrenze della stringa in tutti i file.
ack --literal --files-with-matches 'oldName' --print0 | xargs -0 sed -i '' 's/oldName/NewProject/g'
  • Controlla se tutte le occorrenze della stringa in tutti i file sono state sostituite. Dovresti vedere un output vuoto.
ack --literal 'oldName'
  • Correre pod install
  • Aggiungi NewProjectFolderal tuo repository.
  • Hai fatto!

3
Grazie per questo l'ho trovato utile. Quando si copiano e incollano comandi come questo, lo preferisco se il lavoro può essere minimizzato, quindi un nome di esempio di "YourNewAmazingProjectName" è eccessivo, basta usare "esempio" in quanto prolunga la durata della mia chiave di eliminazione.
LpLrich,

1
@LpLrich grazie per il tuo suggerimento, ho appena aggiornato la mia risposta.
Pietro Basso,

La cartella principale è stata rinominata ma non vedo altre directory o file rinominati, qualche suggerimento?
Ethan Parker,

2
@EthanParker devi eseguire find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'ExampleName'due volte, i file e le directory all'interno delle cartelle principali verranno rinominati nella seconda iterazione.
Pietro Basso,

1
Ho usato coreData nel mio progetto e ho dovuto eseguire questo comando non due volte ma tre volte.
ShadeToD

21

Esiste un progetto GitHub chiamato Xcode Project Renamer:

Dovrebbe essere eseguito dalla radice interna della directory del progetto Xcode e chiamato con due parametri di stringa: $ OLD_PROJECT_NAME e $ NEW_PROJECT_NAME

Lo script analizza ricorsivamente tutti i file e le directory, incluso il progetto Xcode o il file dell'area di lavoro e sostituisce tutte le occorrenze della stringa $ OLD_PROJECT_NAME con la stringa $ NEW_PROJECT_NAME (sia nel nome che nel contenuto di ciascun file).

NON DIMENTICARE DI ESEGUIRE IL BACKUP DEL TUO PROGETTO!

Xcode Project Renamer


Questo non è utile per i principianti, tutto ciò che fa è corrompere il mio file di progetto principale, inoltre non rimuove lo script usando i comandi di seguito alla fine perdendo tempo. $ rm rename.swift
Peter Walter,

Per favore, non seguire le scorciatoie.
Peter Walter,

6
@ peter-walter dovresti sempre eseguire il backup dei tuoi dati prima di tali operazioni.
Olcay Ertaş,

Questo ha funzionato come un fascino. L'unica cosa che manca è che è necessario eseguire pod installdopo aver eseguito lo script.
romin21,

11

XCode 11.0+.

Adesso è davvero semplice. Basta andare al Project Navigatorpannello di sinistra della finestra XCode.
Premere Enterper renderlo attivo per rinominare, proprio come si cambia il nome della cartella.
inserisci qui la descrizione dell'immagine

Basta cambiare il nuovo nome qui e XCode ti chiederà di rinominare altre cose.

inserisci qui la descrizione dell'immagine.

Tocca Renamequi e il gioco è fatto.
Se sei confuso sul nome della tua cartella radice, perché non è cambiato, beh, è ​​solo una cartella. appena rinominato con un nuovo nome.
inserisci qui la descrizione dell'immagine


7

Per cambiare il nome del progetto;

  1. Seleziona il tuo progetto nel Navigatore progetto.

2. Nella sezione Identità e tipo della finestra di ispezione File, immettere un nuovo nome nel campo Nome.

3.Premere Ritorno.

Viene visualizzata una finestra di dialogo che elenca gli elementi del progetto che possono essere rinominati. La finestra di dialogo include un'anteprima di come appariranno gli elementi dopo la modifica.

  1. Per rinominare gli elementi in modo selettivo, disabilitare le caselle di controllo per gli elementi che non si desidera rinominare. Per rinominare solo la tua app, lascia l'app selezionata e deseleziona tutti gli altri elementi.

  2. Premi "Rinomina"


5

Istruzioni extra per seguire le soluzioni di @ Luke-West + @ Vaiden:

  • Se il tuo schema non è cambiato (mostrando ancora il mio mac) in alto a sinistra accanto al pulsante di arresto:

    1. Fai clic sul nome del progetto creato di recente (accanto al pulsante di arresto)> Fai clic su Modifica schemi> Costruisci (lato sinistro)> Rimuovi il vecchio obiettivo (dirà che è mancante) e sostituiscilo con il progetto con nome NUOVO sotto il logo del progetto con nome NUOVO

Inoltre, non ho dovuto usare il passaggio 3 della soluzione di @ Vaiden. Sto correndorm -rf Pods/ nel terminale mi ha eliminato tutti i vecchi file pod

Inoltre, non ho dovuto usare il passaggio 9 nella soluzione di @ Vaiden, ma ho appena rimosso il progetto OLD denominato framework in Link Binary Libraries (il framework NEWLY era già lì)

Quindi i passaggi aggiornati sarebbero i seguenti:

Passaggio 1: rinominare il progetto

  1. Se si utilizzano cocoapods nel progetto, chiudere l'area di lavoro e aprire il progetto XCode per questi passaggi.
  2. Fare clic sul progetto che si desidera rinominare nel "Navigatore di progetto" a sinistra della vista Xcode.
  3. Sulla destra seleziona "File inspector" e il nome del tuo progetto dovrebbe essere lì sotto "Identità e Tipo", cambialo con il nuovo nome.
  4. Fai clic su "Rinomina" in un menu a discesa

Passaggio 2: rinominare lo schema

  1. Nella barra in alto (vicino al pulsante "Stop"), c'è uno schema per il tuo VECCHIO prodotto, fai clic su di esso, quindi vai a "Gestisci schemi"
  2. Fai clic sul VECCHIO nome nello schema e diventerà modificabile, cambia il nome
  3. Esci da XCode.
  4. Nella cartella principale, rinominare OLD.xcworkspace in NEW.xcworkspace.

Passaggio 3: rinominare la cartella con le risorse

  1. Esci da Xcode
  2. Nella cartella principale con nome corretto, c'è un file xcodeproj appena nominato con la cartella OLD con nome errato. Rinomina la cartella OLD con il tuo nuovo nome
  3. Riaprendo il progetto, verrà visualizzato un avviso: "La cartella OLD non esiste", chiudere l'avviso
  4. Nel "Navigatore progetti" a sinistra, fai clic sul nome della cartella OLD di livello superiore
  5. Nel riquadro Utilità in "Identità e tipo" verrà visualizzata la voce "Nome", cambiarla dal vecchio al nuovo nome
  6. Appena sotto c'è una voce "Posizione". Fare clic su una cartella con il nome VECCHIO e scegliere la cartella appena rinominata

Passaggio 4: rinominare i dati del plist di build

  1. Fai clic sul progetto nel "Navigatore del progetto" a sinistra, nel pannello principale seleziona "Crea impostazioni"
  2. Cerca "plist" in questa sezione Sotto la confezione, vedrai Info.plist e l'identificatore del bundle di prodotti
  3. Rinomina la voce principale in Info.plist
  4. Fare lo stesso per l'identificatore del prodotto

Passaggio 5 Gestione del podfile

  1. In XCode: scegli e modifica Podfile dal navigatore del progetto. Dovresti vedere una clausola target con il nome OLD. Cambia in NUOVO.
  2. Esci da XCode.
  3. Nel terminale, cd nella directory del progetto, quindi: rm -rf Pods/
  4. Esegui installazione pod.
  5. Apri XCode.
  6. Fai clic sul nome del tuo progetto nel navigatore del progetto.
  7. Nel riquadro principale, passa alla scheda Crea fasi. In Link Binary With Libraries, cerca il framework OLD e rimuovilo (dovresti dire che manca) Il framework NEWLY dovrebbe essere già lì, se non utilizzare il pulsante "+" nella parte inferiore della finestra per aggiungerlo
  8. Se hai un'intestazione Bridging obiettivo-c vai su Crea impostazioni e modifica la posizione dell'intestazione da OLD / OLD-Bridging-Header.h a NEW / NEW-Bridging-Header.h
  9. Pulisci e corri.

Dovresti essere in grado di creare senza errori dopo aver seguito tutti i passaggi correttamente


2
Per il passaggio 5.3 invece di rm-rf Pods/un modo più pulito è eseguire pod deintegrateche rimuove tutte le tracce di CocoaPods dal progetto Xcode ma lascia intatto il tuo Podfile.
jklapwyk,

Questa regola Mi ha fornito le basi per unire un'app Ionic con un'app iOS esistente.
tl

2

A parte tutti i passaggi consigliati da Luke e Vaiden, ho anche dovuto rinominare tutte le proprietà customModule nel mio Storyboard per abbinare il nuovo nome, e questo deve fare distinzione tra maiuscole e minuscole.


1
l'unica persona che lo abbia mai menzionato!
Fattie,

1
NOTA puoi farlo IN BUILDER DI INTERFACCIA, semplicemente facendo una sorta di "ri-clic" sul campo. Quindi "reimposterà" correttamente il nome del nuovo progetto.
Fattie,
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.