Comment renommer complètement un projet Xcode (c'est-à-dire y compris les dossiers)?

471

J'ai un projet nommé XXX. Je veux renommer ce projet en YYY.

Notez qu'il XXXs'agit d'un terme extrêmement courant (par exemple "données", ou simplement "projet"), et donc une simple recherche et remplacement RegEx n'est pas possible, par risque de corrompre les fichiers de configuration du projet.

Mon répertoire de projet actuel contient les éléments suivants:

  • XXX
  • XXXTests
  • XXX.xcodeproj

et je veux les renommer:

  • YYY
  • YYYTests
  • YYY.xcodeproj

... respectivement, avec les changements nécessaires reflétés dans mon dossier de projet.

Comment puis-je accomplir cela sans avoir à créer et remplir manuellement un nouveau projet?


Edit: Il est absolument ridicule que cela soit devenu ma question la plus votée.

Vatsal Manot
la source
Duplication possible du projet Rename xcode
Ron Myschuk
1
Également demandé et répondu ici stackoverflow.com/questions/17744319/… avec 200 votes
positifs
1
a également demandé et répondu ici stackoverflow.com/questions/8262613/… avec 189 votes
positifs, les
Si vous voulez simplement renommer le nom de l'icône de l'application, cochez cette réponse stackoverflow.com/questions/238980/…
LYu

Réponses:

1021

Étape 1 - Renommer le projet

  1. Cliquez sur le projet que vous souhaitez renommer dans le "Navigateur de projet" dans le panneau gauche de la fenêtre Xcode.
  2. Dans le panneau de droite, sélectionnez "Inspecteur de fichiers", et le nom de votre projet doit être trouvé sous "Identité et type". Changez-le en votre nouveau nom.
  3. Lorsque la boîte de dialogue vous demande de renommer ou non les éléments de contenu du projet, cliquez sur "Renommer".

Étape 2 - Renommer le schéma

  1. En haut de la fenêtre, à côté du bouton "Stop", il y a un schéma pour votre produit sous son ancien nom; cliquez dessus, puis choisissez «Gérer les schémas…».
  2. Cliquez sur l'ancien nom dans le schéma et il deviendra modifiable; changez le nom et cliquez sur "Fermer".

Étape 3 - Renommez le dossier avec vos actifs

  1. Quittez Xcode.
  2. Dans le dossier maître correctement nommé, il y a un fichier .xcodeproj nouvellement nommé avec le dossier OLD mal nommé. Renommez le dossier OLD en votre nouveau nom (si vous utilisez Git, vous pouvez exécuter git mv oldname newnameafin que Git reconnaisse qu'il s'agit d'un mouvement, plutôt que de supprimer / ajouter de nouveaux fichiers).
  3. Rouvrez le projet dans Xcode et vous verrez un avertissement "Le dossier OLD n'existe pas"; rejeter l'avertissement.
  4. Dans le "Navigateur du projet" dans le panneau de gauche, cliquez sur le dossier OLD de niveau supérieur.
  5. Dans le panneau de droite, sous "Identité et type", modifiez le champ "Nom" du nom VIEUX au nouveau nom.
  6. Juste en dessous de ce champ se trouve un menu "Emplacement". Cliquez sur l'icône du dossier à proximité et choisissez le dossier renommé.

Étape 4 - Renommer les données Build plist

  1. Cliquez sur le projet dans le "Navigateur de projet" à gauche, et dans le panneau principal, sélectionnez "Paramètres de construction".
  2. Recherchez "plist" dans les paramètres.
  3. Dans la section d'emballage, vous verrez Info.plistet Product Bundle Identifier.
  4. Si un nom est entré Info.plist, mettez-le à jour.
  5. Faites de même pour Product Bundle Identifier.
  6. Si vous utilisez SwiftUI, recherchez «Development Assets» et mettez à jour le chemin d'accès.

Étape 5 - Répétez l'étape 3 pour les tests (si vous en avez)

Étape 6 - Répétez l'étape 3 pour les données de base si son nom correspond au nom du projet (si vous l'avez)

Étape 7 - Reconstruisez votre projet

  1. Command+ Shift+ Kpour nettoyer
  2. Command+ Bpour construire
Luke West
la source
5
Vous pouvez modifier le nom du projet mais les noms des dossiers sont toujours les mêmes. Savez-vous comment les changer
Coder221
5
Merci! pour Xcode 8, le fichier de droits doit être renommé manuellement.
Jiulong Zhao du
54
Lorsque vous effectuez l'étape 3 partie 2 (renommer le dossier), si vous utilisez git, je recommande git mv oldname newname, de cette façon, git reconnaîtra que c'était un mouvement, sans supprimer et ajouter tous vos fichiers.
Aaron Ash
14
parfait, fonctionne parfaitement dans Xcode 8.2, juste une chose à souligner ici lors de la modification du schéma si cliquer sur le nom du schéma une fois ne le rend pas modifiable, puis sélectionnez le schéma et appuyez sur la touche Entrée, cela rendra le nom du schéma modifiable.
Khurram Shehzad
5
N'oubliez pas de rechercher et de remplacer d' autres instances de votre ancien nom de projet.
Derek Soike
194

Pour ajouter à l'excellente réponse de @ luke-west:

Lors de l'utilisation de CocoaPods

Après l'étape 2:

  1. Quittez XCode.
  2. Dans le dossier principal, renommez- OLD.xcworkspacele NEW.xcworkspace.

Après l'étape 4:

  1. Dans XCode: choisissez et modifiez Podfiledans le navigateur de projet. Vous devriez voir une targetclause avec le nom OLD. Changez-le en NOUVEAU.
  2. Quittez XCode.
  3. Dans le dossier du projet, supprimez le OLD.podspecfichier.
  4. rm -rf Pods/
  5. Courez pod install.
  6. Ouvrez XCode.
  7. Cliquez sur le nom de votre projet dans le navigateur de projet.
  8. Dans le volet principal, passez à l' Build Phasesonglet.
  9. Sous Link Binary With Libraries, recherchez-le libPods-OLD.aet supprimez-le.
  10. Si vous avez un en-tête de pontage objectif-c, allez dans Paramètres de construction et changez l'emplacement de l'en-tête de OLD / OLD-Bridging-Header.h à NEW / NEW-Bridging-Header.h
  11. Nettoyez et courez.
Vaiden
la source
7
En utilisant Xcode 8.3.2, j'ai dû utiliser cocoapods-deintegrate et réinstaller tous les pods pour exécuter le projet avec le nouveau nom.
SteffenK
2
@SteffenK existe-t-il une différence entre cette méthode et rm -rf Pods /? Considérant que vous avez fait toutes les autres étapes?
Vaiden
1
Pourriez-vous élaborer, s'il vous plaît? Quelles traces?
Vaiden
2
@Vaiden merci beaucoup pour la clarté supplémentaire lorsque vous travaillez avec CocoaPods! Le processus a créé une deuxième référence, ce qui était étrange, mais après l'avoir supprimé, tout fonctionnait parfaitement! Merci encore! :)
Matt Swift
4
Quelqu'un pourrait-il me dire où je peux trouver le fichier OLD.podspec mentionné dans cette réponse? Dans mon projet, j'ai obtenu quelques fichiers comme 'Podfile' / 'Podfile.lock' / 'Pods.xcodeproj' et j'ai obtenu un dossier vide nommé 'Local Podspecs', mais je ne trouve pas de fichier
.podspec
51

Une solution plus rapide en utilisant les commandes shell (fonctionne également avec CocoaPods):

VEUILLEZ CONSULTER cdUN DÉPOSITAIRE NON GIT AVANT DE PROCÉDER ⚠️

Étape 1 - Prérequis

  1. Copiez votre dossier de projet d'origine dans un dossier temporaire /NewProjectFolder EN DEHORS de votre dépôt git. ⚠️ les modifications apportées à .git pourraient corrompre votre index git 💥 ☠

Étape 2 - Ouvrir le terminal

Nous allons maintenant renommer le projet de oldNameà NewProject.

  • Fermez XCode.
  • Allez à votre /NewProjectFolder.
cd /Path/to/your/NewProjectFolder
  • Installez les outils supplémentaires nécessaires.
brew install rename ack
  • Renommez les fichiers et répertoires contenant la chaîne source. Vous devrez EXÉCUTER CETTE COMMANDE DEUX FOIS , car les répertoires seront renommés en premier, puis les fichiers et répertoires à l'intérieur de ceux-ci seront renommés à la prochaine itération.
find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'NewProject'
  • Vérifiez si tous les fichiers contenant la chaîne source sont renommés. Vous devriez voir une sortie vide.
find . -name 'oldName*'
  • Remplacez toutes les occurrences de la chaîne dans tous les fichiers.
ack --literal --files-with-matches 'oldName' --print0 | xargs -0 sed -i '' 's/oldName/NewProject/g'
  • Vérifiez si toutes les occurrences de la chaîne dans tous les fichiers ont été remplacées. Vous devriez voir une sortie vide.
ack --literal 'oldName'
  • Courir pod install
  • Ajoutez NewProjectFolderà votre référentiel.
  • Vous avez terminé!
Pietro Basso
la source
3
Merci pour cela, je l'ai trouvé utile. Lorsque vous copiez et collez des commandes comme celle-ci, je préfère que le travail puisse être minimisé, donc un exemple de nom de "YourNewAmazingProjectName" est exagéré, utilisez simplement "exemple" car cela prolonge la durée de vie de ma touche de suppression.
LpLrich
1
@LpLrich merci pour votre suggestion, je viens de mettre à jour ma réponse.
Pietro Basso
Le dossier principal a été renommé mais je ne vois aucun autre répertoire ou fichier renommé, des suggestions?
Ethan Parker
2
@EthanParker vous devez exécuter find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'ExampleName'deux fois, les fichiers et répertoires à l'intérieur des dossiers principaux seront renommés à la deuxième itération.
Pietro Basso
1
J'ai utilisé coreData dans mon projet et j'ai dû exécuter cette commande non pas deux fois mais trois fois.
ShadeToD
21

Il existe un projet GitHub appelé Xcode Project Renamer:

Il doit être exécuté à partir de la racine interne du répertoire du projet Xcode et appelé avec deux paramètres de chaîne: $ OLD_PROJECT_NAME & $ NEW_PROJECT_NAME

Le script parcourt tous les fichiers et répertoires de manière récursive, y compris le projet Xcode ou le fichier d'espace de travail et remplace toutes les occurrences de la chaîne $ OLD_PROJECT_NAME par la chaîne $ NEW_PROJECT_NAME (à la fois dans le nom et le contenu de chaque fichier).

N'OUBLIEZ PAS DE SAUVEGARDER VOTRE PROJET!

Xcode Project Renamer

Olcay Ertaş
la source
Ce n'est pas utile pour les débutants, tout ce qu'il fait est de corrompre mon fichier de projet principal et de ne pas supprimer le script en utilisant les commandes ci-dessous, je finis par perdre du temps. $ rm rename.swift
Peter Walter
Veuillez ne pas chercher de raccourcis.
Peter Walter
6
@ peter-walter, vous devez toujours sauvegarder vos données avant de telles opérations.
Olcay Ertaş
Cela a fonctionné comme un charme. La seule chose qui manque, c'est que vous devez exécuter pod installaprès avoir exécuté le script.
romin21
11

XCode 11.0+.

C'est vraiment simple maintenant. Accédez simplement au Project Navigatorpanneau de gauche de la fenêtre XCode.
Appuyez Entersur pour l'activer pour le renommer, tout comme vous changez le nom du dossier.
entrez la description de l'image ici

Modifiez simplement le nouveau nom ici, et XCode vous demandera de renommer d'autres éléments.

entrez la description de l'image ici.

Appuyez Renameici et vous avez terminé.
Si vous êtes confus au sujet du nom de votre dossier racine et pourquoi il n'a pas changé, eh bien c'est juste un dossier. vient de le renommer avec un nouveau nom.
entrez la description de l'image ici

Kiran Jasvanee
la source
7

Pour changer le nom du projet;

  1. Sélectionnez votre projet dans le navigateur de projet.

2.Dans la section Identité et type de l'inspecteur de fichiers, entrez un nouveau nom dans le champ Nom.

3.Appuyez sur Retour.

Une boîte de dialogue s'affiche, répertoriant les éléments de votre projet qui peuvent être renommés. La boîte de dialogue comprend un aperçu de la façon dont les éléments apparaîtront après la modification.

  1. Pour renommer des éléments de manière sélective, désactivez les cases à cocher des éléments que vous ne souhaitez pas renommer. Pour renommer uniquement votre application, laissez l'application sélectionnée et désélectionnez tous les autres éléments.

  2. Appuyez sur "Renommer"

Paal Aune
la source
5

Instructions supplémentaires pour suivre les solutions @ Luke-West + @ Vaiden:

  • Si votre schéma n'a pas changé (montrant toujours mon mac) en haut à gauche à côté du bouton d'arrêt:

    1. Cliquez sur le nom du projet nouvellement créé (à côté du bouton d'arrêt)> cliquez sur Modifier les schémas> construire (côté gauche)> supprimer l'ancienne cible (dira qu'elle est manquante) et remplacer par le projet nouvellement nommé sous le logo du projet nouvellement nommé

De plus, je n'ai pas eu à utiliser l'étape 3 de la solution de @ Vaiden. Le simple fait d'exécuter rm -rf Pods/dans le terminal s'est débarrassé de tous les anciens fichiers pod

Je n'ai pas non plus eu à utiliser l'étape 9 dans la solution de @ Vaiden, au lieu de cela, je viens de supprimer le cadre nommé OLD project sous Link Binary Libraries (le cadre NEWLY named était déjà là)

Ainsi, les étapes mises à jour seraient les suivantes:

Étape 1 - Renommer le projet

  1. Si vous utilisez des cocoapods dans votre projet, fermez l'espace de travail et ouvrez le projet XCode pour ces étapes.
  2. Cliquez sur le projet que vous souhaitez renommer dans le "Navigateur de projet" à gauche de la vue Xcode.
  3. Sur la droite, sélectionnez "Inspecteur de fichiers" et le nom de votre projet doit y figurer sous "Identité et type", changez-le en nouveau nom.
  4. Cliquez sur "Renommer" dans un menu déroulant

Étape 2 - Renommer le schéma

  1. Dans la barre du haut (près du bouton "Stop"), il y a un schéma pour votre ancien produit, cliquez dessus, puis allez dans "Gérer les schémas"
  2. Cliquez sur le VIEUX nom dans le schéma, et il deviendra modifiable, changez le nom
  3. Quittez XCode.
  4. Dans le dossier principal, renommez OLD.xcworkspace en NEW.xcworkspace.

Étape 3 - Renommez le dossier avec vos actifs

  1. Quittez Xcode
  2. Dans le dossier maître correctement nommé, il y a un fichier xcodeproj nouvellement nommé avec le dossier OLD mal nommé. Renommez le dossier OLD en votre nouveau nom
  3. Rouvrez le projet, vous verrez un avertissement: "Le dossier OLD n'existe pas", ignorez l'avertissement
  4. Dans le "Navigateur du projet" à gauche, cliquez sur le nom du dossier OLD de niveau supérieur
  5. Dans le volet Utilitaires sous "Identité et type", vous verrez l'entrée "Nom", remplacez-la par l'ANCIEN par le nouveau nom.
  6. Juste en dessous se trouve une entrée "Lieu". Cliquez sur un dossier avec l'ancien nom et choisissez le dossier nouvellement renommé

Étape 4 - Renommer les données Build plist

  1. Cliquez sur le projet dans le "Navigateur du projet" à gauche, dans le panneau principal sélectionnez "Paramètres de construction"
  2. Recherchez «plist» dans cette section Sous l'emballage, vous verrez Info.plist et l'identifiant de l'ensemble de produits
  3. Renommez l'entrée supérieure dans Info.plist
  4. Faites de même pour l'identifiant du produit

Étape 5 Gestion du fichier pod

  1. Dans XCode: choisissez et modifiez Podfile dans le navigateur de projet. Vous devriez voir une clause cible avec le VIEUX nom. Changez-le en NOUVEAU.
  2. Quittez XCode.
  3. Dans le terminal, cd dans le répertoire du projet, puis: rm -rf Pods/
  4. Exécutez l'installation du pod.
  5. Ouvrez XCode.
  6. Cliquez sur le nom de votre projet dans le navigateur de projet.
  7. Dans le volet principal, passez à l'onglet Build Phases. Sous Link Binary With Libraries, recherchez le cadre OLD et supprimez-le (devrait dire qu'il est manquant) Le cadre NOUVELLEMENT nommé devrait déjà être là, sinon utilisez le bouton "+" au bas de la fenêtre pour l'ajouter
  8. Si vous avez un en-tête de pontage objectif-c, allez dans Paramètres de construction et changez l'emplacement de l'en-tête de OLD / OLD-Bridging-Header.h à NEW / NEW-Bridging-Header.h
  9. Nettoyez et courez.

Vous devriez pouvoir créer sans erreur après avoir suivi toutes les étapes avec succès

itsmcgh
la source
2
Pour l'étape 5.3, au lieu d' rm-rf Pods/une méthode plus propre, exécutez pod deintegratece qui supprime toutes les traces de CocoaPods de votre projet Xcode mais laisse votre Podfile intact.
jklapwyk
Cette règle. Cela m'a permis de fusionner une application Ionic avec une application iOS existante.
04h33
2

En plus de toutes les étapes recommandées par Luke et Vaiden, j'ai également dû renommer toutes les propriétés customModule dans mon Storyboard pour correspondre au nouveau nom, et cela doit être sensible à la casse.

CristianMoisei
la source
1
la seule personne qui ait jamais mentionné ça!
Fattie
1
NOTEZ que vous pouvez le faire DANS LE CONSTRUCTEUR D'INTERFACE, simplement en "re-cliquant" sur le champ. Il sera ensuite correctement "re-défaut" à votre nouveau nom de projet.
Fattie