web-dev-qa-db-fra.com

Déplacement de fichiers dans un vrai dossier dans Xcode

Quand j'ai commencé mon projet, j'étais heureux d'utiliser des groupes dans Xcode plutôt que des dossiers littéraux: Depuis que j'utilise le navigateur dans Xcode pour accéder à tout, les choses étaient bien organisées et j'étais heureux.

Cependant, maintenant que le projet est sur le point d'être partagé pour le contrôle de version, le dossier du projet lui-même est un spectacle d'horreur pour ceux qui tentent de l'analyser via un terminal, contenant environ 300 fichiers, dont plus de la moitié sont des graphiques.

J'essaie maintenant de réorganiser les choses, de créer de vrais dossiers et de les importer dans Xcode. Malheureusement, Xcode ne me permet pas de travailler avec eux comme avec des groupes. Par exemple, si je clique avec le bouton droit de la souris sur un dossier ajouté réel (bleu, pas jaune) et que je choisis d'ajouter des fichiers existants, il ne les place pas réellement dans ce dossier, il les place à la racine.

De même, je ne peux pas déplacer un fichier d'un faux dossier (un groupe) dans un vrai dossier: Xcode ne considère pas les vrais dossiers comme des emplacements valides vers lesquels déplacer des éléments.

Qu'est-ce que je rate? Comment convaincre Xcode de me laisser utiliser les dossiers comme j'utilise les groupes? Il y a une réponse ici à un question un peu similaire , mais cela ne résout pas réellement mon problème puisque je travaille avec des fichiers existants.

174
Matthew Frederick

FURTHER EDITED JUIN 2017: Xcode 9 le fait automatiquement, sans effort particulier. Cette réponse et Brandon s'appliquent uniquement à Xcode 8 et versions antérieures.

RÉVISÉ DÉCEMBRE 2016: La réponse de Brandon ci-dessous est une meilleure solution maintenant. À l'époque de la création de cette réponse en 2010, c'était la seule option que je pouvais trouver. Je suggère maintenant réponse de Brandon , ci-dessous.


Il s'avère que déplacer des fichiers dans de vrais dossiers est certainement possible, bien que ce ne soit pas aussi simple qu'il devrait l'être.

J'ai obtenu les informations de base d'une question ici, Xcode organisant les fichiers et les dossiers (objets de modèle de données de base - iPhone) ), mais j'ai appris des choses importantes en cours de route.

Le processus

Le déplacement des fichiers est un processus en deux étapes avec plusieurs sous-étapes:

  1. Indiquez à Xcode où vous voulez que les fichiers soient:

    • Cliquez avec le bouton droit de la souris ou en maintenant la touche Contrôle enfoncée sur le fichier ou le groupe de fichiers que vous souhaitez déplacer, puis choisissez Lire les informations dans le menu contextuel qui apparaît. La fenêtre Informations sur le groupe ou Informations sur le fichier apparaît.

    • Cliquez sur le bouton Choose situé à l'extrême droite de la fenêtre dans la zone Chemin. Une boîte de dialogue apparaît.

    • Naviguez jusqu'au dossier dans lequel vous voulez que les fichiers soient déplacés. Créez un Nouveau dossier si nécessaire. Cliquez sur le bouton Choose dans le coin inférieur droit de la boîte de dialogue, puis fermez la fenêtre Informations sur le groupe/Informations sur le fichier.

    • Les noms du ou des fichiers du groupe vireront au rouge pour indiquer que Xcode ne les trouvera pas à l’endroit que vous avez spécifié.

  2. Déplace les fichiers réels

    • Dans le Finder (ou Git), déplacez les fichiers sélectionnés à l’étape 1 dans les dossiers dans lesquels vous les souhaitez.

    • Revenez à Xcode. Les fichiers/groupes doivent tous être redevenus noirs. Si certains sont encore rouges, vous avez oublié de déplacer quelque chose dans le bon dossier.

Conseils

J'ai appris plusieurs choses importantes lors de l'ajustement des ~ 300 fichiers de ce projet:

  • Certains fichiers refusent de se déplacer de cette façon; en d'autres termes, lorsque vous naviguez vers la nouvelle destination, le bouton Choisir est désactivé, de même que le bouton Nouveau dossier. La solution, bien que je ne sache pas pourquoi cela fait une différence, consiste d’abord à utiliser Xcode pour placer ces fichiers dans un groupe (cliquez avec le bouton droit de la souris sur la touche de contrôle de votre choix et choisissez Group, puis donnez nom du groupe) puis déplacez le groupe vers le nouvel emplacement. Une fois que vous avez réellement déplacé les fichiers dans le Finder, vous pouvez les supprimer du groupe (en les faisant glisser dans le nouveau groupe/dossier parent et en supprimant celui-ci).

  • Arrêtez-vous et générez toutes les quelques minutes après avoir terminé l'étape 2 pour un certain nombre de fichiers. La construction vous indiquera si vous avez déjà foiré quelque chose, facilitant le retour en arrière et la réparation avant que vous n'ayez fait trop de dégâts.

  • Si les fichiers ne se déplacent pas à l'endroit souhaité - j'ai eu du mal à déplacer certains fichiers créés auparavant dans le dossier Classes - vous pouvez simplement les faire glisser de leur ancien emplacement dans le Finder vers comme dans le bureau, supprimez les références à ces éléments dans Xcode, puis réimportez-les à l’aide de l’option droit/Ctrl-clic Ajouter des fichiers existants.

  • Si, par le passé, vous avez utilisé Xcode pour supprimer des références à des fichiers sans les déplacer également dans la corbeille de ce projet, vous trouverez des fichiers qui ne doivent pas nécessairement être déplacés, mais se trouvent simplement là. Veillez à ne pas faire ce que j'ai fait, en confondant les noms d'un groupe de fichiers actuel que je déplaçais et des fichiers plus anciens non liés, en insistant pour que Xcode les importe car vous pensiez que le système était dense.

J'espère que cela aide une personne future. Je suis surpris que ce soit aussi difficile et parfois difficile.

118
Matthew Frederick

Une approche moderne (et simple comme bonjour!) Pour 2017 (Xcode 6, 7, 8 et parfois 9, car elle le fait parfois de manière automatique):

Si vous déplacez un grand nombre de fichiers dans un nouveau dossier et que vous conservez la hiérarchie des enfants, il est en fait beaucoup plus facile que de déplacer chaque fichier individuellement:

  1. Créez de nouveaux groupes dans l'arborescence de dossiers Xcode et organisez-y vos fichiers comme bon vous semble.
  2. Créez une arborescence de dossiers physique correspondante dans le Finder et organisez vos fichiers physiques en fonction de ce que vous avez fait à l'étape 1.
  3. Toutes les références dans Xcode devraient maintenant être en rouge (c'est bon!).
  4. Dans le gestionnaire Identité et Type, sélectionnez le Groupe dans Xcode que vous souhaitez déplacer, puis cliquez sur l'icône du dossier dans le volet d'informations:

  5. Dans la boîte de dialogue de sélection du Finder, localisez le nouveau dossier équivalent que vous avez créé pour ce groupe à l'étape 2. Tous Tous les fichiers de ce groupe seront maintenant automatiquement redécouverts!

N'est-ce pas gentil? Au plus, vous devrez répéter ces 5 étapes une fois pour chaque nouveau groupe que vous avez créé (ce qui est préférable au déplacement de chaque fichier individuellement!)

Points bonus!

Dites que vous avez accidentellement foiré le déménagement et maintenant un tas de vos fichiers sont rouges et ne peut pas être trouvé: sélectionnez plusieurs fichiers qui sont cassés, et en utilisant la même icône de dossier dans la capture d'écran de l'étape 4, trouvez le bon dossier contenant ces fichiers et ils résoudront automatiquement les chemins manquants.

171
brandonscript

Dans Xcode 5 ou Xcode 6:

  1. Créez les dossiers qui correspondent à vos groupes dans le Finder
  2. Déplacez les fichiers dans ces dossiers dans le Finder
  3. Sélectionnez chaque fichier qui est rouge dans la barre latérale Xcode à gauche
  4. Cliquez sur le bouton "Afficher/masquer les utilitaires" pour afficher la barre latérale droite (voir figure).
  5. Dans "Identity and Type", cliquez sur le petit bouton et sélectionnez l'emplacement du fichier (voir la figure).

enter image description here

À votre santé.

104
reinaldoluckman

J'ai trouvé le moyen le plus fiable de contourner le design épouvantable de XCode: organiser TOUS vos fichiers dans le Finder, pour deux raisons:

  1. Le Finder ne fait pas "d'erreurs", contrairement à l'interface graphique de XCode
  2. Une fois que tout est organisé dans le Finder, vous pouvez faire glisser/déposer tous les dossiers du Finder dans XCode et ... il fait exactement ce que vous vouliez, sans effort.

Même lorsque vous déplacez des fichiers XCode existants, il est plus rapide de le faire:

  1. Sélectionnez les fichiers dans le Finder
  2. Créez un dossier dans le Finder pour eux
  3. Glissez/déposez-les dans le dossier (les déplace automatiquement)
  4. Glissez/déposez le dossier du Finder dans Xcode (automatiquement: crée le dossier Xcode, ajoute tous les fichiers du dossier du Finder)
  5. cmd-sélectionnez tous les fichiers "rouges" que vous voyez maintenant dans Xcode (parce que vous les avez déplacés) et appuyez sur la touche Suppr

NB: je n'utilise jamais l'option "créer des dossiers glissés avec des sous-groupes", car dans XCode 3, elle était souvent sans espoir et pouvait corrompre des projets. Apple clairement (IMHO) n'utilise pas cette fonctionnalité en interne, sinon il n'aurait jamais été permis d'être aussi bogué; si Apple n'utilise rien , il n’est généralement pas prudent de l’utiliser non plus - ils ne sont pas bons pour tester :)

22
Adam

Il existe un moyen simple d’installer et d’utiliser l’outil de ligne de commande - "synx" disponible dans github qui fait exactement ce qui est nécessaire ici.

Il réorganise le dossier du projet Xcode dans le Finder afin qu'il corresponde aux groupes Xcode du projet.

Vous pouvez le trouver ici: https://github.com/venmo/synx

UPDATE: XCode 9 supporte cette fonctionnalité par défaut. Donc, plus besoin d'utiliser d'autres outils!

21
Nitesh Borad

Xcode 9

Il semble que Xcode 9 le supporte maintenant par défaut. Lorsque vous déplacez des fichiers d'un groupe à un autre, le fichier est également déplacé de l'ancien dossier vers le nouveau. Cela a été annoncé dans WWDC 2017.

5
Guy Daher

J'ai utilisé l'outil suivant pour y parvenir . Organiser les dossiers dans les groupes Xcode

--no-default-exclusions
3
Mike.R

Habituellement, je déplace les fichiers dans le répertoire directement dans le Finder, puis corrige les fichiers avec des noms en rouge dans XCode dans la boîte de dialogue "Lire les informations": cliquez sur le bouton "Choisir ..." et sélectionnez le nouveau locatoin du fichier. C'est la première réponse lorsque je veux déplacer des fichiers dans XCode, et cela fonctionne.

2
Xie Yanbo

Pour déplacer un dossier dans xcode 4.5, je viens de ...

  1. Supprimez les fichiers/groupes de xcode et sélectionnez "Supprimer la référence".
  2. Allez dans le Finder et déplacez le dossier/les fichiers selon vos besoins.
  3. Une fois cela fait, je retourne dans Xcode et choisissez Fichier-> Ajouter des fichiers à {NomProjet}.
  4. Assurez-vous que l'option "Copier les éléments dans le dossier du groupe de destination (si nécessaire)" est cochée.
  5. Assurez-vous que "Créer un groupe pour tout dossier ajouté" est coché
  6. Assurez-vous que "Ajouter à la cible" est coché pour votre projet.
1
Shannon Cole

À partir de Xcode 4.5, lorsque vous faites glisser une structure de dossiers, celle-ci se transforme automatiquement en groupes imbriqués dans le navigateur de projet. Ensuite, si vous regardez sur le disque (par exemple, un clic droit et choisissez Afficher dans le Finder), la structure de dossiers a été conservée.

J'ai trouvé que tenter de réparer les problèmes d'un projet plus ancien n'était qu'un problème. Il s'est avéré beaucoup plus facile de simplement supprimer ces fichiers et de les faire glisser à nouveau.

1
Snowcrash

La technique la plus simple pour XCode 8 ....

En supposant que vous ayez des fichiers A, B, C dans un groupe logique, mais que vous souhaitiez les déplacer dans un dossier de votre disque dur.

  1. Créer un dossier de destination via le Finder
  2. Ajoutez le dossier dans XCode (Fichier -> Ajouter des fichiers) en utilisant le volet Options pour sélectionner une référence de dossier (pas un groupe).
  3. Faites glisser les fichiers A, B, C du groupe (ancien) vers la référence de dossier (nouvelle) dans le navigateur de projet. XCode déplacera les fichiers dans le dossier, à la fois dans le projet et sur le disque.

Terminé.

1
software evolved