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.
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
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é:
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.
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 à
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.
J’espère que ça aide quelqu’un
Regardez la réponse d’andvv22 ici
Paraphraser:
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.