Workflow pour créer des groupes Xcode en tant que dossiers de système de fichiers

J’aime organiser mes classes en groupes, dans le volet de navigation du projet Xcode 4. J’utilise également le versioning de GIT via le terminal, ce qui fonctionne mieux pour moi que l’intégration de Xcode 4. Pour moi, cela a du sens lorsque les groupes que je crée dans Xcode correspondent à des dossiers réels sur mon système de fichiers.

Cependant, Xcode ne semble pas se soucier de l’emplacement du fichier (par exemple, le fichier Objective-C .h / .m) sur le système de fichiers, et chaque fois que vous ajoutez un groupe ( Option+Command+N ), il est purement esthétique. mettre là-bas partagera le même emplacement sur votre disque dur que le rest.

La chose étrange est que si vous créez d’abord un dossier sur votre disque dur et que vous le faites glisser vers Xcode, vous avez créé un groupe avec son propre emplacement sur votre système de fichiers. Chaque fichier que vous créez ici sera créé dans le dossier sur le disque. J’adore ça, mais j’adorerais encore plus si Xcode le faisait pour Option+Command+N Le processus de basculement vers le Finder pour chaque groupe que vous souhaitez créer, puis en le faisant glisser au bon endroit dans votre navigateur de projet est tout simplement stupide.

On se croirait dans un cadre, mais je ne le trouve pas! Y a-t-il une meilleure façon?

Mise à jour: Lorsque vous faites glisser un dossier sur Xcode, vous obtenez une fenêtre de dialog dans laquelle vous pouvez choisir “Référence de dossier”. Cela semble prometteur, mais mon Xcode 4 n’accepte pas les fichiers comme classes et continue de me dire qu’il ne trouve aucun fichier. Peut-être que la réponse se trouve ici quelque part, mais je ne peux toujours pas la trouver.

Une autre mise à jour: j’ai changé l’environnement de l’éditeur principal de Xcode à AppCode. Ce dernier prend en charge la création de dossiers pour sauvegarder les groupes de projets, tout en maintenant une compatibilité à 100% avec Xcode. Ces gars d’AppCode savent certainement ce qu’ils font.

METTRE À JOUR

La section suivante décrit Xcode 9 et versions ultérieures.

À partir de Xcode 9, Xcode peut créer automatiquement un dossier de système de fichiers lorsque vous créez un groupe dans votre projet.

Lorsque vous cliquez avec le bouton droit de la souris sur le navigateur de projet, le menu contextuel inclut un élément de menu «Nouveau groupe» et un élément de menu «Nouveau groupe avec dossier» ou un élément de menu «Nouveau groupe sans dossier».

  • Si Xcode propose «Nouveau groupe» et «Nouveau groupe avec dossier», alors «Nouveau groupe» crée un groupe sans dossier.

  • Si Xcode propose «Nouveau groupe» et «Nouveau groupe sans dossier», alors «Nouveau groupe» crée un groupe avec un dossier.

En d’autres termes, «Nouveau groupe» fait toujours le contraire de l’autre élément de menu (explicite) en ce qui concerne la création de dossiers.

Si vous renommez un groupe et que ce groupe possède un dossier correspondant du même nom, Xcode 9 renomme également le dossier.

Dans Xcode 9, si vous faites glisser un fichier d’un groupe à un autre et que les groupes ont des dossiers différents, Xcode 9 déplace le fichier dans le dossier du nouveau groupe, que le dossier du nouveau groupe porte ou non le même nom.

Si vous ne souhaitez pas ce comportement dans Xcode 9, vous pouvez définir un paramètre non documenté à partir de la ligne de commande:

 defaults write com.apple.dt.Xcode IDEDisableStructureEditingCoordinator -bool YES 

Impossible de déduire des détails sur «Nouveau groupe avec dossier» et «Nouveau groupe sans dossier»

Il n’est pas du tout évident que Xcode décide d’afficher «Nouveau groupe» et «Nouveau groupe avec dossier», ou «Nouveau groupe» et «Nouveau groupe sans dossier». Un ingénieur d’Apple à la WWDC 2018 (je pense qu’il s’appelait Paul) a regardé le code source de Xcode et m’a expliqué:

  • Xcode détermine le groupe sur lequel vous avez cliqué (ou, si vous n’avez pas cliqué sur un groupe, il détermine quel groupe contient l’élément sur lequel vous avez cliqué).
  • Xcode examine les sousgroupes (et les dossiers liés) qui sont des enfants du groupe cliqué.
  • Si la majorité des sous-groupes ont leurs propres dossiers, Xcode suppose que vous souhaitez que le nouveau groupe possède également son propre dossier. Ainsi, Xcode affiche «Nouveau groupe» (qui créera un dossier) et «Nouveau groupe sans dossier».
  • Si la majorité des sous-groupes ne possèdent pas leurs propres dossiers, Xcode suppose que vous souhaitez également que le nouveau groupe ne possède pas son propre dossier. Ainsi, Xcode affiche «Nouveau groupe» (qui ne créera pas de dossier) et «Nouveau groupe avec dossier».
  • Je ne sais pas comment Xcode fait la différence si exactement la moitié des sous-groupes ont leurs propres dossiers, et je n’ai pas envie de le tester maintenant…
  • Si le groupe cliqué n’a pas de sous-groupes, Xcode décide de ce qu’il doit afficher en fonction du fait que le groupe cliqué lui-même possède son propre dossier.

Fondamentalement, Xcode essaie de deviner si votre nouveau groupe doit avoir son propre dossier selon que ses futurs frères et sœurs ont leurs propres dossiers.

ORIGINAL

Vous pouvez créer un nouveau groupe, avec son propre dossier, directement dans Xcode, mais ce n’est pas du tout évident.

Au lieu de choisir «Nouveau groupe», choisissez «Ajouter des fichiers à ». Ensuite, dans la boîte de dialog du sélecteur de fichiers, cliquez sur le bouton Nouveau dossier ou appuyez sur Commande-Maj-N et tapez le nom du nouveau dossier / groupe. Ensuite, assurez-vous que «Créer des groupes pour tous les dossiers ajoutés» est choisi et cliquez sur Ajouter ou appuyez sur Retour.

ajouter un groupe avec son propre dossier

Cela ne vous économise pas beaucoup si vous devez déplacer des fichiers existants dans le nouveau groupe, car Xcode ne le fera toujours pas.

Mais cela vous évite quelques étapes si vous créez un nouveau groupe pour contenir de nouveaux fichiers.

Pour ceux qui sont trop paresseux pour synchroniser les dossiers, il existe un outil intéressant sur GitHub .

Synx est un outil de ligne de commande qui réorganise votre dossier de projet Xcode en fonction de vos groupes Xcode.

entrer la description de l'image ici

J’espère que ça aide quelqu’un

Regardez la réponse d’andvv22 ici

Paraphraser:

  • Xcode 3 : chaque fois que vous créez un groupe dans Xcode, obtenez immédiatement des informations dessus et notez le paramètre “Path:” juste en dessous de son nom. Cliquez sur “Choisir …” et réglez-le sur un nouveau dossier portant le même nom.
  • Xcode 4 : chaque fois que vous créez un groupe dans Xcode, sélectionnez-le immédiatement et ouvrez la barre latérale droite. Notez le paramètre “Path:” juste en dessous de son nom. Cliquez sur l’icône à côté de “Aucun” (qu’est-ce que c’est, un fichier dans une fenêtre?) Et réglez-le sur un nouveau dossier avec le même nom.

Ensuite, vous devrez déplacer manuellement tous les fichiers existants sur le disque vers le nouveau dossier.

Juste essayé dans mon projet Xcode4, fonctionne comme un charme.