web-dev-qa-db-fra.com

Dupliquer et renommer le projet Xcode et les dossiers associés

J'aimerais pouvoir dupliquer un projet Xcode entier, renommer le projet et les fichiers associés sans Xcode, et sans avoir à réimporter manuellement tous les fichiers dans le projet.

193
Sammio2

Cette réponse est le point culminant de divers autres messages et tutoriels StackOverflow sur Internet rassemblés dans un même lieu pour référence future et pour aider toute autre personne susceptible de faire face au même problème. Tout le crédit est donné pour d'autres réponses à la fin.

Dupliquer un projet Xcode

  • Dans le Finder, dupliquez le dossier du projet à l'emplacement souhaité de votre nouveau projet. Ne renommez pas le nom du fichier .xcodeproj ni aucun dossier associé à ce stade.

  • Dans Xcode, renommez le projet. Sélectionnez votre projet dans le volet de navigation (volet de gauche). Dans le volet Utilitaires (volet de droite), renommez votre projet, Acceptez les modifications proposées par Xcode.

  • Dans Xcode, renommez les schémas dans "Gérer les schémas", ainsi que toutes les cibles que vous pourriez avoir.

  • Si vous n'utilisez pas l'identifiant d'ensemble par défaut qui contient le PRODUCT_NAME actuel à la fin (la mise à jour est automatique), remplacez votre identifiant d'ensemble par le nouvel identificateur que vous utiliserez pour votre projet dupliqué.

Renommer le dossier source

Ainsi, après avoir suivi les étapes ci-dessus, vous devriez avoir un projet Xcode dupliqué et renommé qui doit être construit et compilé avec succès. Toutefois, votre dossier de code source sera toujours nommé tel qu'il était dans le projet d'origine. Cela ne pose aucun problème de compilateur, mais ce n'est pas la structure de fichier la plus claire pour la navigation dans SCM, etc. Pour renommer ce dossier sans rompre tous vos liens de fichier, procédez comme suit:

  • Dans le Finder, renommez le dossier source. Cela cassera votre projet, car Xcode ne détectera pas automatiquement les modifications. Toutes vos listes de fichiers xcode perdront leurs liens avec les fichiers réels et deviendront toutes rouges.

  • Sous Xcode, cliquez sur le dossier virtuel que vous avez renommé (ce sera probablement tout en haut, juste en-dessous de votre projet .xcode.) Renommez-le pour qu'il corresponde au nom indiqué dans le Finder. étape obligatoire, mais il est agréable d’avoir les noms de fichiers correspondants.

  • Dans Xcode, sélectionnez le dossier que vous venez de renommer dans le volet de navigation. Ensuite, dans le volet Utilitaires (tout à droite), cliquez sur l'icône qui ressemble à un dossier gris foncé, juste en dessous du menu déroulant "Emplacement". À partir de là, accédez à votre dossier renommé dans le Finder et cliquez sur "Choisir". Cela associera automatiquement tous vos fichiers et ils ne devraient plus apparaître en rouge dans le volet de navigation Xcode.

Icon to click

  • Dans les paramètres de construction de votre projet/cible, recherchez l'ancien nom du dossier et renommez manuellement toutes les occurrences trouvées. Normalement, il y en a un pour prefix.pch et un pour info.plist, mais il peut y en avoir plus.

  • Si vous utilisez des bibliothèques tierces (Testflight/Hockeyapp/etc.), vous devez également rechercher les "chemins de recherche de bibliothèque" et renommer toutes les occurrences de l'ancien nom de fichier ici également.

  • Répétez cette procédure pour tous les dossiers de code source de test unitaire que votre projet peut contenir. Le processus est identique.

Cela devrait vous permettre de dupliquer et de renommer un projet xcode et tous les fichiers associés sans avoir à modifier manuellement les fichiers xcode, sans risquer de gâcher le tout.

Crédits

Un grand merci à Nick Lockwood , et Pauly Glott pour avoir fourni des réponses séparées à ce problème.

364
Sammio2

Je poste ceci depuis que j'ai toujours eu du mal à renommer un projet en XCode.

Renommer le projet est simple et efficace, mais cela ne renomme pas le dossier source. Voici une étape par étape de ce que j'ai fait et qui a très bien fonctionné sous Xcode 4 et 5 grâce aux liens ci-dessous.

Liens REF:
Renommer le projet.
Renommer le dossier source et d’autres fichiers.

1- Sauvegardez votre projet.

Si vous utilisez git, validez les modifications, effectuez une copie de l'intégralité du dossier du projet et sauvegardez-la dans Time Machine avant de procéder aux modifications (cette étape n'est pas obligatoire, mais vivement recommandée).

2- Ouvrez votre projet.

- Double-cliquez lentement ou appuyez sur enter dans le nom du projet (icône bleue en haut) et renommez-le comme vous le souhaitez.

NOTE: Après avoir renommé le projet et appuyé sur ‘entrer’, il vous sera proposé de modifier automatiquement toutes les entrées relatives au nom du projet et vous permettra de désélectionner certaines d’entre elles si vous le souhaitez. Sélectionnez-les tous et cliquez sur ok.

4- Renommer le schéma

a) Cliquez sur le menu situé juste à côté du bouton d'arrêt et sélectionnez Gérer les modèles.

b) Faites un simple clic lent ou appuyez sur Entrée dans l'ancien schéma de noms et renommez-le comme bon vous semble.

c) Cliquez sur ok.

5 - Construisez et exécutez pour vous assurer qu'il fonctionne.

NOTES: À ce stade, tous les fichiers de projet importants doivent être renommés, à l'exception des commentaires des classes créées lors de la création du projet et du dossier source. Ensuite, nous allons renommer le dossier dans le système de fichiers.

6- Fermer le projet.

7- Renommez le dossier principal et le dossier source.

8 - Cliquez avec le bouton droit de la souris sur le fichier de bundle de projet .xcodeproj _ et sélectionnez "Afficher le contenu du paquet" dans le menu contextuel. Ouvrez le fichier .pbxproj avec n’importe quel éditeur de texte.

9 - Recherchez et remplacez toute occurrence du nom du dossier d'origine par le nouveau nom du dossier.

10- Enregistrer le fichier.

11- Ouvrez le projet XCode, testez-le.

12- Fait.

26
fs_tigre

Depuis XCode 7, cela est devenu beaucoup plus facile.

Apple a documenté le processus sur son site: https://developer.Apple.com/library/ios/recipes/xcode_help-project_editor/RenamingaProject/RenamingaProject.html

Mise à jour: lien XCode 8: http://help.Apple.com/xcode/mac/8.0/#/dev3db3afe4f

5
PBICS

J'utilise ce script après avoir renommé mon projet iOS. Il est utile de changer le nom des répertoires et de les synchroniser.

http://github.com/ytbryan/rename

REMARQUE: vous devrez modifier manuellement le nom du schéma.

2
ytbryan

Dans l'exemple de code pour le livre "Instant OpenCV for iOS" , j'ai trouvé un script bash qui copie un projet d'un dossier à un autre.
En faisant une petite recherche, j'ai trouvé un article sur ce qui semble être l'auteur original du script: http://mohrt.blogspot.it/2009/01/renaming-xcode- project-from-command.html , où vous pouvez télécharger le script . Je l'ai essayé et l'exécutant du terminal comme ceci

    sh renameXcodeProject.sh <name-of-existing-folder> <name-of-folder-to-create>   

fonctionne bien.
Des informations supplémentaires peuvent être trouvées en ouvrant le fichier avec un éditeur de texte. J'espère que ça t'as aidé

1
Giorgio Tempesta

Une dernière chose à essayer!

Lorsque j'ai copié tous mes fichiers, ouvert le projet et renommé, tout a changé pour mon nouveau nom de projet sauf pour la cible de test! J'ai eu une erreur de l'éditeur de liens qui disait qu'il me manquait un fichier appelé "myOldProjectname.app". Voici ce qui l'a corrigé:

  1. Cliquez sur les paramètres de votre projet et sélectionnez votre cible de test enter image description here

  2. Cliquez sur les paramètres de construction et recherchez "test Host" enter image description here

  3. Vérifiez ces 2 chemins de fichiers. Il est probable que ces 2 chemins pointent toujours vers votre ancien nom de projet. enter image description here

J'espère que ça t'as aidé!

0
erparker

J'utilise un script BASH simple pour renommer.

Utilisation: ./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}"

Remarques:

  1. Ce script ignorera tous les fichiers comme .git et .DS_Store
  2. Ne fonctionnera pas si l'ancien nom/nouveau nom contient des espaces
  3. Peut ne pas fonctionner si vous utilisez des dosettes (non testées)
  4. Le nom du schéma ne sera pas modifié (de toute façon, le projet s'exécute et se compile normalement)
0
Anton Malmygin

Si vous rencontrez des problèmes de blocage du storyboard après avoir copié votre projet, accédez à Main.storyboard sous Identity Inspector.

Ensuite, vérifiez que votre module actuel est le bon module renommé et non l'ancien.

0
Wraithseeker

J'utilise Xcode 6+ et je fais juste:

  • Copiez tous les fichiers des dossiers de projet dans de nouveaux dossiers (avec un nouveau nom).
  • Ouvrir *.xcodeproj or *.xcworkspace
  • Changer le nom du projet.
  • Cliquez sur le schéma et supprimez le chema actuel et ajoutez-en un nouveau.

Voici terminé, mais le nom de la fenêtre Xcode et *.xcodeproj or *.xcworkspace toujours <old-name>. Alors je fais:

  • pop install
  • Ouvrir <new name>.xcworkspace
0
SLyHuy