31 votes

Comment inclure un bundle dans le projet principal xcode 4

J'ai beaucoup cherché pour cet argument, mais je ne pouvais pas trouver une solution, j'ai même poster sur stackoverflow, mais j'ai vite supprimé la question parce que de très peu d'accès. Maintenant, je suis en train d'essayer de nouveau.

J'ai un espace de travail avec deux projets distincts A et B.

B a deux objectifs, l'un que de construire une bibliothèque statique Blib.un, et un seul qui permettent de créer un bundle B. bundle. Tous d'entre eux sont construits en dérivé du répertoire.

Dans Un projet, je peux facilement ajouter de la statique de la bibliothèque de l'phases de construction. Cependant je ne peux pas trouver un moyen d'inclure l'ensemble. B. faisceau n'est pas visible à partir de "copier la ressource" dans l'onglet A. Donc j'ai besoin d'ajouter manuellement, avec tout ce que cela implique. J'ai aussi pensé à l'aide d'un script, mais je voudrais l'utiliser comme une dernière option.

Quelqu'un a une solution pour cela ? Ai-je raté quelque chose ?

merci

19voto

Leonardo Points 3253

Après une longue enquête, il est venu jusqu'à il n'y a pas de moyen facile de le faire. Le B. bundle n'est jamais visible à Un projet, et il n'y a pas de paramètres dans l'espace de travail pour changer cela. À ce stade, il y a trois solutions:

  • Inclure le bundle manuellement à partir de "copier les ressources->d'autres", j'ai commencé avec cela, mais à chaque fois il y a une modification, vous devez déposer et comprennent le bundle de nouveau
  • Créer un script à exécuter dans la phase de construction, si tout est intégré dans les PRODUITS de la dir, vous pouvez trouver le paquet facilement et avoir copié automatiquement dans l'application.bundle. Ce n'est pas une mauvaise solution. Si vous utilisez svn le script obtenu inclus dans le projet, et les utilisateurs ont gratuitement sans travail supplémentaire.
  • Comme suggéré par Apple, le support technique, l'utilisation du dossier de références.Construire bundle B dans un dossier et d'ajouter dossier pour Un projet à l'aide de la "Créer un Dossier de Références pour tout ajout de dossiers" option. Xcode 4 mise à jour de votre module dans ce dossier à chaque fois que vous avez construit. Le dossier ajouté apparaîtra en bleu une fois inclus dans votre projet A.

C'est y est, personnellement, j'utilise le script, parce que cette solution est chemin d'accès indépendant si vous utilisez la norme xcode variable de référence tels que BUILT_PRODUCTS_DIR et ainsi de suite, et le script shell est juste un cp-r-f

4voto

agarcian Points 2043

Après avoir cherché longtemps et échoué plusieurs fois, j'ai trouvé cette ressource qui a été un excellent tutoriel pour créer des bibliothèques statiques et inclure des bundles dans votre projet principal ou même pour la distribution à des développeurs tiers qui pourraient consommer votre bibliothèque.

Absolument recommandé:

https://github.com/jverkoey/iOS-Framework

1voto

Depuis Xcode 5.1.1, j'ai pu faire glisser et déposer B.bundle du Project Navigator vers la liste Copy Bundle Resources du projet A Build Phases. Je suppose que la création de la cible B.bundle n'est pas un problème.

1voto

Joshua Nozzi Points 38718

Dans le projet A, le produit du projet B est-il une dépendance dans l'action Build de votre schéma? Je pense que vous devrez peut-être configurer cette dépendance (il est parfois préférable de désactiver l'option de découverte automatique des dépendances) pour qu'elle s'affiche et soit disponible pour la copie dans une autre cible. Je crois que c'est parce qu'il n'existe pas vraiment (comme un fichier de ressource d'image) jusqu'à ce qu'il soit construit et que Xcode doive s'assurer qu'il est construit avant de travailler avec lui à partir d'une autre cible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X