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.
git mv oldame newname
pour que Git le reconnaisse comme un déplacement plutôt que de supprimer/ajouter de nouveaux fichiers).Info.plist
et Product bundle identifier
Info.plist
Product Identifier
Enfin, vous avez terminé et pouvez reconstruire ( Commande + Maj + K pour nettoyer, Commande + B à construire)
Pour ajouter à l'excellente réponse de @ luke-west:
OLD.xcworkspace
en NEW.xcworkspace
.Podfile
dans le navigateur de projet. Vous devriez voir une clause target
avec le nom OLD. Changez-le en NEW.OLD.podspec
.rm -rf Pods/
pod install
.Build Phases
.Link Binary With Libraries
, recherchez libPods-OLD.a
et supprimez-le. S'IL VOUS PLAÎT cd
À UN DÉPÔT NON GIT AVANT DE PROCÉDER
/NewProjectFolder
temporaire À L'EXTÉRIEUR de votre référentiel git. ⚠️ les modifications apportées à .git pourraient corrompre votre index git ???? ☠Nous allons maintenant renommer le projet oldName
en NewProject
.
/NewProjectFolder
.cd /Path/to/your/NewProjectFolder
brew install rename ack
find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'NewProject'
find . -name 'oldName*'
ack --literal --files-with-matches 'oldName' --print0 | xargs -0 sed -i '' 's/oldName/NewProject/g'
ack --literal 'oldName'
pod install
NewProjectFolder
à votre référentiel.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).
Pour changer le nom du 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.
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.
Appuyez sur "Renommer"
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:
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
étape 2 - renommer le schéma
Étape 3 - Renommez le dossier avec vos ressources
Étape 4 - Renommez les données du plist de construction
Étape 5 Traitement du fichier podfile
rm -rf Pods/
Vous devriez être capable de construire sans erreurs après avoir suivi toutes les étapes avec succès
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.