Renommer le projet xcode 4 et le dossier réel

119

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 renomme que dans Xcode (bien que ce soit un progrès par rapport au précédent) - mais pourquoi Xcode ne renomme pas le dossier dans le système de fichiers, je ne sais pas.

Chris G.
la source
Avez-vous simplement essayé de renommer le dossier?
David Brown
2
J'ai mon ami, et tous les fichiers du fichier de projet manquent alors - ils sont tous marqués de lecture, pour ne pas avoir de référence. Mais j'ai trouvé l'âme - voyez ma réponse. Merci d'avoir répondu
Chris G.

Réponses:

259

Vous pouvez le faire à partir de Xcode sans avoir à modifier manuellement le fichier pbxproj dans un éditeur de texte!

Voici comment:

  1. Renommez votre dossier source dans le Finder. Cela interrompra le projet initialement car Xcode ne détecte pas automatiquement le moment où les dossiers réels vers lesquels les dossiers de projet virtuels (jaunes) pointent sont modifiés, de sorte que tous les fichiers à l'intérieur de ce dossier deviendront rouges dans Xcode. Ne vous inquiétez pas à ce sujet, nous le corrigerons à l'étape 3.

  2. Dans Xcode, cliquez sur le dossier virtuel (maintenant cassé) dans la barre latérale gauche et renommez-le pour qu'il corresponde au nom 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 corrigera 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 affichée dans la capture d'écran ci-dessous pour faire apparaître une boîte de dialogue de fichier. Sélectionnez le dossier que vous avez précédemment renommé. Cela réassociera 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 de dossier et renommez manuellement toutes les occurrences trouvées. Il y en aura généralement deux, oldfolder / prefix.pch et oldfolder / info.plist, mais il peut y en avoir d'autres.

Terminé!

entrez la description de l'image ici

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

Nick Lockwood
la source
Excellent, j'ajouterais simplement que si le changement de nom fait partie du changement de nom de l'ensemble du projet, alors il y a une autre étape: changer le "Nom du projet" dans la partie supérieure droite et permettre à Xcode de tout renommer en interne pour correspondre.
RedYeti
1
Tout a très bien fonctionné et le projet est renommé, mais le message de construction en haut et le nom du simulateur ont toujours conservé l'ancien nom, pour changer cela: Allez dans le menu du produit, gérez les schémas et renommez le schéma
BlackTigerX
Vrai. Vous pouvez également simplement supprimer le schéma et appuyer sur le bouton de création automatique de schémas.
Nick Lockwood
Quelqu'un sait comment faire cela dans xCode 5? Je ne vois plus ce bouton magique. :(
Jason
C'est toujours là, c'est juste caché. Vous devez développer la ligne intitulée "Identité et type" dans l'inspecteur en cliquant dessus. Il m'a fallu environ 20 minutes pour comprendre cela!
Nick Lockwood
112

Je l'ai fait des dizaines de fois:

  • Renommez le projet en cliquant puis en éditant le titre dans votre navigateur de projet Xcode.
  • Fermez Xcode.
  • Renommez le dossier source.
  • Depuis le Finder, ouvrez le .pbxprojfichier dans le bundle du projet (menu contextuel "Afficher le contenu du package") avec n'importe quel éditeur de texte.
  • Recherchez et remplacez toute occurrence du nom de dossier d'origine par le nouveau nom de dossier.
  • Enregistrez le fichier.
  • Ouvrez le projet Xcode.
Djromero
la source
3
N'oubliez pas de le faire après avoir renommé le projet
Aram Kocharyan
Je suis vos instructions et échoue. Je pense que le problème est dans "Rechercher et remplacer toute occurrence du nom de dossier d'origine par le nouveau nom de dossier." Pourriez-vous fournir des instructions plus détaillées sur cette étape? Merci
Philip007
La procédure de recherche et de remplacement dépend de l'éditeur de texte ou de l'outil choisi. Dans mon cas, avec vim: <ESC>:% s / old / new / g <ENTER> Cela peut échouer s'il y a autre chose dans le fichier projet avec un nom en conflit.
djromero le
Merci @madmw, je l'ai compris. J'utilise TextEdit. Je pense que l'astuce consiste à remplacer l'attribut «Contient» par «Mot complet» tout en effectuant une recherche et un remplacement. Et je poste les instructions détaillées ci-dessous.
Philip007
Fonctionne un régal! Lors du changement de nom du dossier d'une cible, par exemple une bibliothèque statique, j'ai également dû jouer avec mes schémas et renommer également l'en-tête de préfixe et le fichier info plist.
Tim Potter
12

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

Change ça:

entrez la description de l'image ici

Pour ça:

entrez la description de l'image ici

PAS:

// Avant toute chose, veuillez sauvegarder le projet dans 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'affecte pas le nom du dossier dans le Finder
  • Fermer Xcode
  • Renommer le dossier externe (colonne de gauche de l'image) dans le Finder

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

  • Renommez le dossier interne dans Finder tout en gardant Xcode fermé
  • Cliquez avec le bouton droit sur .xcodeproj, sélectionnez "Afficher le contenu du paquet"
  • Ouvrez le fichier .pbxproj avec Mac TextEdit
  • Recherchez et remplacez tous les "Play" par "Play2". Pour garantir que tout va bien, cliquez sur la flèche à l'extrémité gauche de la barre de recherche et modifiez l'attribut de recherche. Remplacez "Contient" par "Mot complet" et décochez "Ignorer la casse"
  • Enregistrer le fichier .pbxproj
  • Ouvrez le projet Xcode et exécutez
Philip007
la source
4

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

  1. Fermez complètement tous les projets ouverts 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. Accédez 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 faites un clic droit sur le fichier .xcodeproj, puis sélectionnez l'option "Afficher le contenu du package"
  8. Ensuite, faites un clic droit sur le fichier .pbxproj et ouvrez-le avec TextEdit
  9. Remplacez toutes les occurrences du nom du dossier dans lequel vivaient les projets (l'ancien nom de projet pour le nouveau nom de projet)
  10. Enregistrez le fichier
  11. Ouvrez à nouveau le projet et construisez-le!
Mav55
la source
Pourriez-vous fournir des instructions plus détaillées sur l'étape 9?
Philip007
2

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

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

J'ai trouvé la réponse ou comment contourner ce problème: ouvrez le fichier pbxproj en cliquant avec le bouton droit de la souris sur "Afficher le contenu du package" et vous y modifiez un fichier project.pbxproj - vous devez renommer une référence appelée chemin et d'autres éléments - recherchez simplement le nom du dossier ajouté "/".

C'est ça. J'espère que cela aide quelqu'un.

Chris G.
la source
2
J'ai renommé un projet hier et cela a bien fonctionné. Je suis d'accord que Xcode est "ahh" cependant: D
manmal
Il existe un moyen parfaitement sûr et pris en charge de le faire - voir ma réponse.
Nick Lockwood
2

Voici un autre problème dont vous devez être conscient lors du remplacement des valeurs dans votre fichier * .pbxproj. Si votre ancien nom de dossier était FooBar, vous aurez une entrée dans votre fichier * .pbxproj qui ressemble à ceci:

chemin = FooBar

Supposons que votre nouveau nom de dossier soit Foo Bar. Autrement dit, vous introduisez un espace. Ensuite, cette ligne devrait devenir

path = "Foo Bar"

Si vous faites simplement une recherche et un remplacement simples, 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 ne contient pas d'espace, veillez à inclure les guillemets doubles.

Zampano
la source
2

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

  1. Quittez Xcode de ce projet.

  2. Dans Finder, dupliquez le dossier AU-DESSUS de ProjAbc.xcodeproj pour la sauvegarde.

  3. Dans Finder, renommez librement le dossier AU-DESSUS de ProjAbc.xcodeproj si vous sentez que vous en avez besoin pour correspondre au nouveau nom de 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 source virtuel ProjAbc seront de couleur rouge).

  6. Dans Xcode, cliquez sur le dossier virtuel (maintenant cassé) dans le navigateur de projet dans la barre latérale gauche et renommez-le pour qu'il corresponde au nom dans Finder - ProjDef. Cela ne corrigera pas encore les fichiers rouges dans le dossier, mais c'est OK.

  7. Dans Xcode, (toujours en sélectionnant le dossier virtuel dans la barre latérale gauche) dans la barre latérale droite, dans l'inspecteur de fichiers, cliquez sur l'icône affichée dans la capture d'écran ci-dessous pour afficher 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 réassociera le dossier virtuel au dossier réel sur le disque et corrigera automatiquement les liens vers tous les fichiers qu'il contient. L'image montre où cliquer sur l'icône Dossier dans l'inspecteur de fichiers

  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é: "Souhaitez-vous que Xcode prenne des instantanés automatiques avant le Renommer le Projet et les opérations similaires?". Cliquez sur "Désactiver" ou "Activer". Ce n'est pas important.
  9. Dans Xcode, ouvrez maintenant "Build Settings" dans la cible ProjDef (dans le projet ProjDef dans Project Navigator). Renommez le nom de dossier et le nom de fichier des fichiers * -Info.plist et * -Prefix.pch pour contenir ProjDef au lieu de ProjAbc.

  10. Dans Xcode, dans Project Navigator, dans le dossier des sources virtuelles de ProjDef, dans «Fichiers de support», renommez également les fichiers * -Info.plist et * -Prefix.pch pour contenir ProjDef au lieu de ProjAbc

  11. Dans le menu Xcode, appuyez sur Product / Scheme / Manage Schemes ... (ou cliquez sur "ProjAbc"> Scheme name dans Scheme Bar en haut à gauche de Xcode, et appuyez sur "Manage Schemes ...") et dans la boîte de dialogue renommez Scheme de ProjAbc à ProjDef, puis appuyez sur le bouton "OK". Si le nom du projet est composé d'un seul mot, vous pouvez l'exécuter 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 entendu, la correction de ce commentaire est facultative.

  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 avec le bouton droit de la souris et dans le menu contextuel, appuyez sur "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) qui doit apparaître une fois (dans le paragraphe: / * Début de la section PBXNativeTarget * / en ligne: productName = ProjAbc;) et remplacez-le par «ProjDef». En effet, le projet pourrait quand même s'exécuter !, donc cette étape est facultative.

  16. si le nom du projet est composé de 2 mots séparés ou plus, comme "ProjDef Geh", alors vous DEVEZ faire les étapes suivantes: Rechercher la référence au dossier Finder du dossier des fichiers source virtuels -

    • Recherchez la ligne: path = ProjDef Geh;
    • Il apparaîtra une fois, dans le paragraphe / * ProjDef Geh * /
    • Remplacez-le par la ligne: path = "ProjDef Geh";
  17. Enregistrez à partir de 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.

mlev
la source
Vous avez rendu cela plus compliqué que nécessaire. Si vous effectuez d'abord l'étape 8 (renommer le projet), avant l'étape 4 (renommer le dossier source), il renomme automatiquement votre fichier Info.plist et Prefix.pch, vous pouvez donc sauter les étapes 9 et 10.
Nick Lockwood
0

J'ai trouvé les réponses ci-dessus vraiment utiles, en particulier la réponse de Nick Lockwood.

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

Comment résoudre ces deux problèmes:

A) " manquant dans les erreurs de copie de travail "

J'ai trouvé la réponse ci-dessous très utile: Mise à niveau Swift 3 / Xcode 8 - 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 entraîner les erreurs ci-dessus. Vous devez:

  1. Nettoyer les données dérivées de Xcode.
  2. Accédez à Contrôle de la source et cliquez sur Actualiser l'état.
  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 Valider.
  6. Actualiser l'état.
  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 code source. Si vous ne l'avez pas fait ou si vous êtes bloqué en suivant mes instructions, suivez simplement les instructions plus détaillées dans le lien fourni.

B) Crashs de Core Data

Renommer les dossiers va parfois bousiller les données de base. Il y a plusieurs raisons possibles à cela, et voici quelques correctifs que je peux suggérer:

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

    À l'avenir (plusieurs années après cet article, lorsque Apple modifie à nouveau Core Data) ou si vous utilisez une ancienne version de Core Data, jetez un œil attentif à AppDelegate. Il y a probablement quelque chose de génial qui dérange vos données de base.

  2. Nom de modèle incorrect dans xcdatamodeld . Accédez au Finder et ouvrez votre .xcdatamodeld dans un éditeur de texte.

Vérifiez les éléments 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 correspond ce qui est dans votre AppDelegate et le 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.
Hadoren
la source
0

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

  • Publier le projet à partir du projet source
  • Renommez le dossier source du projet source qui rompt le problème de référence.
  • Dans le projet en double, tout devient rouge, choisissez votre dossier de projet actuel. (La capture d'écran est affichée dans la réponse de coche verte de stackoverflow)

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

Ravi Kumar
la source