web-dev-qa-db-fra.com

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

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

Notez que XXX est un terme extrêmement courant (par exemple, "données" ou simplement "projet") et qu’une simple recherche et remplacement RegEx n’est donc pas possible, sans risque de corruption des 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 en:

  • YYY
  • YYYTests
  • YYY.xcodeproj

... respectivement, les modifications nécessaires étant reflétées dans mon fichier de projet.

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


Edit: C'est absolument ridicule que ce soit devenu ma question la plus votée.

372
Vatsal Manot

Étape 1 - Renommez le projet

  1. Cliquez sur le projet que vous souhaitez renommer dans le "Navigateur de projet" situé à gauche de la vue Xcode.
  2. Sur la droite, sélectionnez "Inspecteur de fichier". Le nom de votre projet doit y figurer sous "Identité et type", remplacez-le par le nouveau nom.
  3. Cliquez sur "Renommer" dans un menu déroulant.

Étape 2 - Renommez le schéma

  1. Dans la barre du haut (près du bouton "Arrêter"), vous trouverez un schéma pour votre ancien produit, cliquez dessus, puis sélectionnez "Gérer les schémas".
  2. Cliquez sur le nom OLD dans le schéma, et il deviendra éditable, changez le nom

Étape 3 - Renommez le dossier avec vos ressources.

  1. Quitter Xcode
  2. Dans le dossier principal nommé correctement, il existe un fichier xcodeproj récemment nommé avec le dossier OLD incorrectement nommé. Renommez le dossier OLD avec votre nouveau nom (si vous utilisez Git, vous pouvez exécuter git mv oldame newname pour que Git le reconnaisse comme un déplacement plutôt que de supprimer/ajouter de nouveaux fichiers).
  3. Rouvrez le projet, vous verrez un avertissement: "Le dossier OLD n'existe pas", ignorez l'avertissement.
  4. Dans le "Navigateur de 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, il y a une entrée "Lieu". Cliquez sur un dossier avec le nom OLD et choisissez le dossier récemment renommé.

Étape 4 - Renommez les données du plist de construction **

  1. Cliquez sur le projet dans le "Navigateur de projet" à gauche, dans le panneau principal, sélectionnez "Paramètres de construction".
  2. Recherchez "plist" dans cette section
  3. Sous l'emballage, vous verrez Info.plist et Product bundle identifier
  4. Renommez l'entrée la plus haute dans Info.plist
  5. Faites la même chose pour Product Identifier
  6. Si vous utilisez SwiftUI, recherchez "Atouts de développement" et mettez à jour le chemin.

É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 leur nom correspond au nom du projet (si vous l'avez) **

Enfin, vous avez terminé et pouvez reconstruire ( Commande + Maj + K pour nettoyer, Commande + B à construire)

842
Luke West

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 maître, renommez OLD.xcworkspace en NEW.xcworkspace.

Après l'étape 4:

  1. En XCode: choisissez et éditez Podfile dans le navigateur de projet. Vous devriez voir une clause target avec le nom OLD. Changez-le en NEW.
  2. Quittez XCode.
  3. Dans le dossier du projet, supprimez le fichier OLD.podspec.
  4. rm -rf Pods/
  5. Exécutez pod install.
  6. Ouvrez XCode.
  7. Cliquez sur le nom de votre projet dans le navigateur de projet.
  8. Dans le volet principal, passez sur l'onglet Build Phases.
  9. Sous Link Binary With Libraries, recherchez libPods-OLD.a et supprimez-le.
  10. Si vous avez un en-tête d'objectif-c Bridging, allez dans les paramètres de construction et modifiez l'emplacement de l'en-tête de OLD/OLD-Bridging-Header.h à NEW/NEW-Bridging-Header.h.
  11. Nettoyez et courez.
172
Vaiden

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

S'IL VOUS PLAÎT cd À UN DÉPÔT NON GIT AVANT DE PROCÉDER

Étape 1 - Prérequis

  1. Copiez votre dossier de projet d'origine dans un /NewProjectFolder temporaire À L'EXTÉRIEUR de votre référentiel git. ⚠️ les modifications apportées à .git pourraient corrompre votre index git ???? ☠

Étape 2 - Ouvrir le terminal

Nous allons maintenant renommer le projet oldName en NewProject.

  • Fermez XCode.
  • Allez dans votre /NewProjectFolder.
cd /Path/to/your/NewProjectFolder
  • Installez les outils supplémentaires nécessaires.
brew install rename ack
  • Renommez les fichiers et les 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 les répertoires 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'
  • Exécuter pod install
  • Ajoutez NewProjectFolder à votre référentiel.
  • Vous avez terminé!
36
Pietro Basso

Il y a un projet GitHub appelé Xcode Project Renamer:

Il doit être exécuté depuis la racine 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 (les deux dans le nom et le contenu de chaque fichier).

Xcode Project Renamer

12
Olcay Ertaş

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 fichier, 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 pouvant être renommés. La boîte de dialogue comprend un aperçu de la manière dont les éléments apparaîtront après le changement.

  1. Pour renommer des éléments, désactivez les cases à cocher pour les éléments que vous ne souhaitez pas renommer. Pour renommer uniquement votre application, laissez-la sélectionnée et désélectionnez tous les autres éléments.

  2. Appuyez sur "Renommer"

6
Paal Aune

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

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

    1. Cliquez sur le nouveau nom du projet créé (à côté du bouton d'arrêt)> Cliquez sur Modifier les modèles> Construire (côté gauche)> Supprimez l'ancienne cible (elle dira qu'elle manque) et remplacez-le par le projet NEWLY nommé sous le logo du projet NEWLY nommé

De plus, je n'ai pas eu à utiliser l'étape 3 de la solution de @ Vaiden. Il suffit de lancer rm -rf Pods/ dans un terminal pour se débarrasser de tous les anciens fichiers pod

De plus, je n'ai pas eu à utiliser l'étape 9 de la solution de @ Vaiden, mais j'ai simplement supprimé le projet nommé OLD framework, sous Link Biinary Libraries (le framework NEWLY était déjà là).

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

Étape 1 - Renommez le projet

  1. Si vous utilisez des cocoapodes 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" situé à gauche de la vue Xcode.
  3. Sur la droite, sélectionnez "Inspecteur de fichier". Le nom de votre projet doit y figurer sous "Identité et type", remplacez-le par le 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 "Arrêter"), vous trouverez un schéma pour votre ancien produit, cliquez dessus, puis sélectionnez "Gérer les schémas".
  2. Cliquez sur le nom OLD dans le schéma, et il deviendra éditable, changez le nom
  3. Quittez XCode.
  4. Dans le dossier principal, renommez OLD.xcworkspace en NEW.xcworkspace.

Étape 3 - Renommez le dossier avec vos ressources

  1. Quitter Xcode
  2. Dans le dossier principal nommé correctement, il existe un fichier xcodeproj nouvellement nommé avec le dossier OLD incorrectement nommé. Renommez le vieux dossier avec votre nouveau nom
  3. Rouvrez le projet, vous verrez un avertissement: "Le dossier OLD n'existe pas", ignorez l'avertissement.
  4. Dans le "Navigateur de 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, il y a une entrée "Lieu". Cliquez sur un dossier avec le nom OLD et choisissez le dossier récemment renommé.

Étape 4 - Renommez les données du plist de construction

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

Étape 5 Traitement du fichier podfile

  1. En XCode: choisissez et éditez Podfile dans le navigateur de projet. Vous devriez voir une clause cible avec le nom OLD. Changez-le en NEW.
  2. Quittez XCode.
  3. Dans 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 vieil framework et supprimez-le (il faut dire qu'il est manquant). Le framework NEWLY devrait déjà être là, sinon utilisez le bouton "+" en bas de la fenêtre pour l'ajouter.
  8. Si vous avez un en-tête d'objectif-c Bridging, allez dans les paramètres de construction et modifiez l'emplacement de l'en-tête de OLD/OLD-Bridging-Header.h à NEW/NEW-Bridging-Header.h.
  9. Nettoyez et courez.

Vous devriez être capable de construire sans erreurs après avoir suivi toutes les étapes avec succès

4
itsmcgh

Mis à part toutes les étapes recommandées par Luke et Vaiden, je devais également renommer toutes les propriétés customModule de mon Storyboard afin qu'elles correspondent au nouveau nom, ce qui doit être sensible à la casse.

1
CristianMoisei