web-dev-qa-db-fra.com

Espaces de travail Xcode avec sous-projets et dépendances de projet déclenchant des builds

Je souhaite qu'il y ait une meilleure documentation pour cela pour Xcode 5 mais je n'ai rien trouvé de décent décrivant les meilleures pratiques pour travailler avec les espaces de travail, alors ..

Dans un espace de travail avec plusieurs projets (quelques cadres, 1 application), est-il possible que Xcode crée tous les projets dépendants uniquement lorsque cela est nécessaire (c'est-à-dire les changements trouvés) - sans devoir inclure tous les projets dans tous les projets dépendants?

Je préfère simplement avoir les frameworks dans le projet en fonction de celui-ci au lieu d'avoir 5-6 sous-projets car c'est juste un gâchis dans la vue de navigation -
les fichiers dans les sous-projets apparaissent tout le temps dans les résultats de recherche, les sous-projets dans NavView se développent pour une raison quelconque dans les projets.

Cependant, sans inclure de projets, un projet particulier dépend de je n'ai pas trouvé de moyen pour que Xcode 5 recrée automatiquement les frameworks si l'une des dépendances a changé.

40
Jay

Cette solution était destinée à un autre problème, mais elle répond peut-être à vos besoins.

Après avoir ajouté votre sous-projet à l'espace de travail:

  1. Sélectionnez la cible qui doit utiliser le sous-projet nouvellement ajouté
  2. Dans "Lier les fichiers binaires aux bibliothèques" sous Phases de construction, appuyez sur le bouton +
  3. Si la bibliothèque n'apparaît pas, cliquez sur "Ajouter un autre ..."
  4. Accédez au dossier où se trouve le fichier de projet (* .xcodeproj)
  5. Marquez-le et appuyez sur "Ouvrir"
  6. Vous devriez maintenant voir le fichier de projet apparaître sous "Lier les fichiers binaires aux bibliothèques"
  7. Sous "Dépendances cibles" dans le même onglet, appuyez sur le bouton +
  8. Vous devriez maintenant voir les fichiers nécessaires
  9. Vérifiez le vôtre et cliquez sur "Ajouter"
  10. Encore une fois dans "Lier les fichiers binaires aux bibliothèques", appuyez sur le bouton +
  11. Maintenant, votre fichier .a devrait apparaître et vous pouvez le choisir et l'ajouter

Vous utilisez maintenant la bibliothèque choisie pour votre cible. Répétez ces étapes pour chaque cible qui a besoin de ce sous-projet. J'espère que ça t'as aidé! Pour moi, c'est parce que je ne parvenais pas à y ajouter des dépendances avant ...

Greetz, Tomte

47
Tomte

Juste au cas où quelqu'un d'autre aurait des problèmes avec cela dans Xcode 7: assurez-vous que le projet que vous souhaitez ajouter en tant que sous-projet est pas ouvert, avant de l'ajouter ou de le supprimer.

16
Raspu

On XCode 5 Vous devez aller

  • Sélectionnez le projet dans l'onglet gauche
  • Choisissez la cible dans la section CIBLES
  • Puis dans Build Phases> Target Dependencies appuyez sur "+"
  • Choisissez le projet ajouté comme cible, il apparaîtra dans la liste Dépendances cibles

Si cela fonctionne, lors de la construction, toutes les dépendances cibles seront construites ensemble si nécessaire.

8
loretoparisi

Ceci est dérivé de la réponse de Tomte. Son approche me causait une Dependency Analysis Error. Il s'agit d'une approche plus simple et explique pourquoi la réponse de Tomte fonctionne:

  1. Cliquez sur le sous-projet et faites-le glisser dans le projet qui doit cibler le sous-projet.
  2. L'alerte d'options devrait maintenant être affichée. Assurez-vous que Copier les éléments si nécessaire n'est pas sélectionné. Assurez-vous que Créer des groupes est sélectionné. Assurez-vous qu'aucune des cibles du projet n'est sélectionnée. Appuyez sur le bouton Terminer.
  3. Cliquez sur le projet auquel vous venez d'ajouter la référence de sous-projet.
  4. Cliquez sur la cible que vous souhaitez avoir une dépendance sur le sous-projet.
  5. Cliquez sur le bouton Target Dependecies +.
  6. Notez que le produit du sous-projet est répertorié en option. Sélectionnez-le.

Notez que lorsque vous utilisez l'approche de Tomte, lorsque le projet est ajouté à Link Binary With Libraries, une référence de projet est créée. Cette référence de projet se trouve dans le groupe Frameworks du projet.

Je suis en conflit quant à savoir si c'est une bonne approche ou non. L'approche par régime n'est pas beaucoup meilleure, à mon avis. Je me demande en fait pourquoi les projets d'espace de travail n'ont pas cette relation par défaut.

À tout le moins, cela devrait clarifier la magie de la solution de Tomte.

6
Fostah

Vous pouvez créer un schéma qui construit toutes les cibles.

5
ulle