web-dev-qa-db-fra.com

Renommer le projet xcode 4 et le dossier actuel

Je sais comment renommer le projet dans Xcode 4, mais comment renommer le dossier source? Le fait est que renommer le projet dans Xcode ne le fait que dans Xcode (bien que ce soit une progression par rapport au précédent) - mais pourquoi Xcode ne renomme pas le dossier dans le système de fichiers que je ne connais pas.

119
Chris G.

Vous pouvez le faire depuis Xcode sans avoir à éditer le fichier pbxproj à la main dans un éditeur de texte!

Voici comment:

  1. Renommez votre dossier source dans le Finder. Cela rompra le projet initialement car Xcode ne détecte pas automatiquement le moment où les dossiers réels sur lesquels pointent les dossiers de projets virtuels (jaunes) sont modifiés, de sorte que tous les fichiers de ce dossier deviennent rouges dans Xcode. Ne vous inquiétez pas pour ça, nous allons le réparer à l'étape 3.

  2. Dans Xcode, cliquez sur le dossier virtuel (maintenant brisé) dans la barre latérale gauche et renommez-le afin qu'il corresponde au nom affiché dans le Finder (vous pouvez en fait l'appeler comme vous voulez ou ne pas le renommer du tout, mais ce serait insensé ). Cela ne résoudra pas les fichiers rouges dans le dossier, mais ce n'est pas grave.

  3. Dans la barre latérale droite de Xcode, cliquez sur l'icône indiquée dans la capture d'écran ci-dessous pour ouvrir une boîte de dialogue de fichier. Sélectionnez le dossier que vous avez renommé précédemment. Cela associera à nouveau le dossier virtuel au dossier réel sur le disque et corrigera automatiquement les liens vers tous les fichiers qu'il contient.

  4. Dans vos paramètres de construction, recherchez l'ancien nom du dossier et renommez manuellement les occurrences trouvées. Il y aura généralement deux d'entre eux, oldfolder/prefix.pch et oldfolder/info.plist, mais il peut y en avoir d'autres.

Terminé!

enter image description here

EDIT: cette option existe toujours dans Xcode 5, mais elle est utilement masquée par défaut. Pour l'afficher, cliquez sur l'en-tête "Identité et type" dans l'inspecteur situé au-dessus du panneau "Paramètres de texte" pour le développer.

259
Nick Lockwood

Je l'ai fait des dizaines de fois:

  • Renommez le projet en cliquant sur, puis en modifiant le titre dans votre navigateur de projet Xcode.
  • Fermez Xcode. 
  • Renommez le dossier source. 
  • Dans le Finder, ouvrez le fichier .pbxproj dans le groupe de projets (menu contextuel "Afficher le contenu du package") avec n’importe quel éditeur de texte. 
  • Rechercher et remplacer toute occurrence du nom du dossier d'origine par le nouveau nom du dossier. 
  • Enregistrez le fichier. 
  • Ouvrir le projet Xcode.
112
djromero

Tâche: Renommez "Play" en "Play2" à la fois dans Xcode et dans le Finder

Change ça:

enter image description here

Pour ça:

enter image description here

PAS:

// Avant toute chose, veuillez sauvegarder le projet dans le Finder!

  • Renommer le projet dans le navigateur de projet Xcode // Cliquez sur le nom du projet, puis appuyez sur Entrée.
  • Renommer le groupe dans le navigateur de projet Xcode // n'affectant pas le nom du dossier dans le Finder
  • Fermer Xcode
  • Renommer le dossier externe (colonne de gauche dans l'image) dans le Finder

// Toutes les étapes ci-dessus sont simples et sans effets secondaires//// Maintenant vient la partie la plus délicate: renommer le dossier interne (colonne du milieu de l'image) dans le Finder (celui du même niveau que. xcodeproj)

  • Renommez le dossier interne dans le Finder tout en maintenant Xcode fermé.
  • Faites un clic droit .xcodeproj, sélectionnez "Afficher le contenu du paquet" 
  • Ouvrir le fichier .pbxproj avec Mac TextEdit
  • Rechercher et remplacer tous les "Play" par "Play2". Pour garantir que tout se passe bien, cliquez sur la flèche située à gauche de la barre de recherche et modifiez l'attribut de recherche. Remplacez "contient" par "mot entier" et décochez "ignorer la casse"
  • Enregistrer le fichier .pbxproj
  • Ouvrir le projet Xcode et exécuter
12
Philip007

Voici comment renommer un projet efficacement dans XCode4 (Y COMPRIS LE DOSSIER DE FICHIERS):

  1. Fermez tous les projets ouverts complètement dans XCode pour éviter tout problème
  2. Copiez le projet en question dans un nouveau dossier (IMPORTANT: CONSERVEZ UNE Sauvegarde de votre ancien projet)
  3. Ouvrez le projet
  4. Renommez le projet lui-même en XCode4 (double-cliquez sur le nom du projet), changez le nom et suivez les étapes (oui à tout)
  5. Allez au produit, gérez les schémas et renommez le schéma (double-cliquez sur le nom du schéma)
  6. Fermez votre projet (assurez-vous qu'il est complètement fermé sinon les prochaines étapes ne fonctionneront pas)
  7. Dans le Finder, allez dans le dossier Projet et cliquez avec le bouton droit sur le fichier .xcodeproj, puis sélectionnez l'option "Afficher le contenu du paquet".
  8. Faites ensuite un clic droit sur le fichier .pbxproj et ouvrez-le avec TextEdit
  9. Remplacer toutes les occurrences du nom du dossier où vivaient les projets (l'ancien nom de projet pour le nouveau nom de projet)
  10. Sauvegarder le fichier
  11. Ouvrez à nouveau le projet et construisez-le!
4
Mav55

Tout d'abord, ne renommez pas un projet Xcode !!!

Si vous devez le faire, ce qui se passe en dessous pourrait bien être le suivant: je ne l'ai jamais fait fonctionner, j'ai fini par créer un nouveau projet et tout recommencé à copier dans les fichiers existants. Xcode est tellement ahh .... Il a tellement de choses non productives, comme essayer de renommer un fichier de "Nom" en "nom". Bien, amusez-vous bien.

J'ai trouvé la réponse ou la façon de contourner le problème: ouvrez le fichier pbxproj en cliquant avec le bouton droit de la souris sur "Afficher le contenu du paquet" et vous pourrez y éditer un fichier project.pbxproj. Vous devez renommer une référence appelée chemin et quelques autres éléments. le nom du dossier ajouté "/".

C’est ça… .. Espérons que cela aidera quelqu'un.

2
Chris G.

Voici un autre problème à connaître lors du remplacement de valeurs dans votre fichier * .pbxproj. Si votre ancien nom de dossier était FooBar, votre fichier * .pbxproj aura une entrée qui ressemble à ceci:

chemin = FooBar

Supposons que votre nouveau nom de dossier est Foo Bar. C'est-à-dire que vous introduisez un espace. Ensuite, cette ligne devrait devenir

path = "Foo Bar"

Si vous effectuez simplement une recherche et un remplacement, le résultat sera un fichier * .pbxproj que Xcode ne peut pas analyser. Si votre nouveau nom de dossier comporte un espace et que l'ancien nom n'en contient pas, veillez à inclure les guillemets.

2
Zampano

Je me résume moi-même, après avoir examiné les différentes réponses ci-dessus et essayé moi-même… .. Supposons que le nom actuel du projet est ProjAbc et que vous souhaitiez le renommer en ProjDef:

  1. Quittez Xcode de ce projet.

  2. Dans le Finder, dupliquez le dossier ABOVE ProjAbc.xcodeproj pour la sauvegarde.

  3. Dans le Finder, renommez librement le dossier ABOVE ProjAbc.xcodeproj si vous pensez en avoir besoin pour adapter le nouveau nom du projet.

  4. Dans le Finder, renommez le dossier des fichiers source parallèlement à ProjAbc.xcodeproj de ProjAbc à ProjDef.

  5. Ouvrez Xcode pour ProjAbc.xcodeproj (dans Project Navigator, tous les fichiers du dossier de source virtuelle ProjAbc seront en rouge).

  6. Sous Xcode, cliquez sur le dossier virtuel (maintenant brisé) dans le navigateur de projet dans la barre latérale gauche et renommez-le afin qu'il corresponde à son nom dans le Finder - ProjDef. Cela ne résoudra pas encore les fichiers rouges dans le dossier, mais ce n'est pas grave.

  7. Sous Xcode, (toujours en sélectionnant le dossier virtuel dans la barre latérale gauche) dans la barre latérale droite, dans l'inspecteur de fichier, cliquez sur l'icône affichée dans la capture d'écran ci-dessous pour ouvrir une boîte de dialogue de fichier. Dans la boîte de dialogue de fichier, sélectionnez le dossier que vous avez précédemment renommé (ProjDef). Cela associera à nouveau le dossier virtuel au dossier réel sur le disque et corrigera automatiquement les liens vers tous les fichiers contenus dans .Picture shows where to click the Folder icon in File inspector

  8. Dans Xcode, dans Project Navigator, cliquez sur le nom du projet ProjAbc et renommez-le ProjDef.

    • Vous serez invité à: "Renommer les éléments de contenu du projet?". Cliquez sur le bouton "Renommer".
    • Vous serez invité à indiquer: "Souhaitez-vous que Xcode prenne des instantanés automatiques avant que Project Rename et des opérations similaires?". Cliquez sur "Désactiver" ou "Activer". Ce n'est pas important.
  9. Dans Xcode, ouvrez maintenant "Paramètres de construction" dans la cible ProjDef (dans le projet ProjDef dans Project Navigator). Renommez les deux noms de nom de fichier et * des fichiers * -Info.plist et * -Prefix.pch pour qu'ils contiennent ProjDef au lieu de ProjAbc.

  10. Dans Xcode, dans Project Navigator, dans le dossier des sources virtuelles ProjDef, dans "Fichiers de support", renommez à nouveau les fichiers * -Info.plist et * -Prefix.pch pour qu'ils contiennent ProjDef au lieu de ProjAbc.

  11. Dans le menu Xcode, appuyez sur Produit/Schéma/Gérer les schémas ... (ou cliquez sur "ProjAbc"> Nom du schéma dans la barre de schéma en haut à gauche de Xcode et appuyez sur "Gérer les schémas ...") et dans la boîte de dialogue, renommez Schème de Projabc to ProjDef, puis appuyez sur le bouton "OK". Si le nom du projet est composé d'un seul mot, vous pouvez le lancer tout de suite!

  12. Dans Xcode, modifiez la ligne de commentaire supérieure dans le fichier Supporting Files/* - Prefix.pch et remplacez ProjAbc par ProjDef (2 fois). Bien sûr, corriger ce commentaire est facultatif.

  13. Quittez Xcode.

  14. Dans le Finder, pointez sur ProjDef.xcodeproj et ouvrez-le dans l'éditeur de texte. (Ouvrez-le dans TextWrangler.app ou cliquez sur le bouton droit de la souris dans le menu contextuel, puis sélectionnez "Afficher le contenu du paquet", puis modifiez le fichier project.pbxproj dans TextEdit.app).

  15. Dans l'éditeur de texte, recherchez "ProjAbc" (mot entier, casse correspondante) qui doit apparaître une fois (au paragraphe:/* Début de la section PBXNativeTarget */in line: productName = ProjAbc;) et remplacez-le par "ProjDef". En effet, le projet peut être exécuté quand même !, cette étape est donc facultative. 

  16. si le nom du projet est composé d'au moins 2 mots distincts, tels que "ProjDef Geh", vous DEVEZ effectuer les étapes suivantes: Recherchez la référence au dossier Finder du dossier des fichiers source virtuels - 

    • Recherchez la ligne: path = ProjDef Geh;
    • Il apparaîtra une fois, au paragraphe/* ProjDef Geh * /
    • Remplacez-le par la ligne: path = "ProjDef Geh";
  17. Enregistrez depuis l'éditeur de texte et quittez l'éditeur de texte.

  18. C'est tout. Comme indiqué ci-dessus, si le nom du projet est composé d'un seul mot, vous pouvez l'exécuter directement à la fin de l'étape 11.

2
mlev

Si vous avez une ancienne référence de projet source dans votre projet, dupliquez le projet (chaque modification apportée affecte les deux projets) Ici la solution 

  • Dublicate Project à partir du projet source 
  • Renommez le dossier source du projet source qui résout le problème de référence.
  • Dans dublicate proect tout va rouge, choisissez votre dossier actuel de projet. (capture d'écran montre la réponse en tick vert de stackoverflow)

============================================== =======================

0
Ravi H Malviya

J'ai trouvé les réponses ci-dessus très utiles, notamment celle de Nick Lockwood.

Je viens de renommer quelques dossiers dans Xcode 8 et j'ai rencontré deux problèmes supplémentaires: A) "manquant dans les erreurs de copie de travail" B) Core Data plante.

Comment résoudre ces deux problèmes:

A) "manquant d'erreurs de copie de travail"

J'ai trouvé la réponse ci-dessous très utile: Swift 3/Xcode 8 Upgrade - Des centaines de fichiers DerivedData manquants en raison d'erreurs de copie de travail

Fondamentalement, Xcode 8 a un contrôle de source rigoureux, ce qui peut conduire aux erreurs ci-dessus. Vous devez:

  1. Nettoyer les données dérivées de Xcode.
  2. Accédez au contrôle de source et cliquez sur Actualiser le statut.
  3. Allez dans Contrôle de code source et cliquez sur Valider. sélectionnez tous les fichiers dans la barre latérale gauche du menu de validation lors de la validation (clic droit -> Sélectionner tout).
  4. Vous obtiendrez probablement une erreur.
  5. Fermez le menu de validation.
  6. Actualiser le statut.
  7. Fermez votre projet en quittant Xcode.
  8. Rouvrez votre projet, actualisez le statut, validez à nouveau.
  9. Cette fois, le commit devrait fonctionner.
  10. Cliquez sur Projet -> Nettoyer.

Je suppose que vous avez déjà activé le contrôle de source. Si ce n'est pas le cas ou si vous êtes bloqué en suivant mes instructions, suivez simplement les instructions plus détaillées dans le lien fourni.

B) Core Data plante

Renommer des dossiers peut parfois bousiller Core Data. Ceci est possible pour plusieurs raisons, et voici quelques solutions que je peux suggérer:

  1. Nom de modèle AppDelegate incorrect. C'était le cas dans ma situation. Accédez à votre AppDelegate et trouvez let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME"). Assurez-vous que le nom est correct.

    À l'avenir (plusieurs années après cette publication, lorsque Apple modifiera à nouveau Core Data) ou si vous utilisez une version antérieure de Core Data, examinez attentivement AppDelegate. Il y a probablement quelque chose de génial qui gâche vos données de base.

  2. Nom de modèle incorrect dans xcdatamodeld. Allez dans le Finder et ouvrez votre fichier .xcdatamodeld dans un éditeur de texte.

Vérifiez les points suivants:

<plist version="1.0">
  <dict>
     <key>_XCCurrentVersionName</key>
     <string>YOUR CORE DATA MODEL NAME.xcdatamodel</string>  <-- Make sure this is correct.
  </dict>
</plist>

Plus de détails ici: Les fichiers de modèle Core Data ne se chargent pas lors du changement de nom

  1. Si les deux choses ci-dessus ne fonctionnent pas, essayez de 1) supprimer votre entité puis ajoutez une autre entité identique ou 2) supprimez votre xcdatamodeld puis ajoutez un autre modèle de données identique (et assurez-vous que le nom du nouveau xcdatamodeld contenu de votre AppDelegate et du reste de votre code). Ne faites jamais cela avec une application en direct - ou si vous faites cela, assurez-vous de migrer correctement vos données de base tout en le faisant.
0
Hadoren