J'utilise un cadre intégré pour mes vues personnalisées dans un nouveau projet pour tirer parti des nouveaux éléments @IBDesignable dans Xcode 6 et j'aimerais animer ces vues avec Facebook's Pop. J'ai ajouté Pop au projet à l'aide de Cocoapods mais le framework intégré n'a pas accès à ces fichiers ('POP/pop.h' file not found
).
J'ai essayé de copier les phases de construction liées aux Cocoapods de la cible de l'application vers la cible du cadre personnalisé, mais elles ne fonctionnent pas telles quelles. Ce que fait fonctionne, c'est de copier directement le dossier Pop dans le framework intégré, mais ensuite Xcode me dit que je dois changer tous les crochets angulaires <POP/pop.h>
entre guillemets "POP/pop.h"
. Je suppose qu'il y a un meilleur moyen et je le cache.
En supposant que dans votre Podfile vous utilisez le link_with 'MyCustomFramework'
, où "MyCustomFramework" est le nom de votre infrastructure intégrée, et ont exécuté pod install
. Sélectionnez votre fichier de projet (bleu en haut à droite) et allez dans "Build Settings". Ensuite, recherchez 'Autoriser les inclusions non modulaires dans les modules de framework' et définissez-le sur OUI , pour le fichier Project (bleu ) et la cible du cadre personnalisé (ex. MyCustomFramework - icône orange "cas de boîte à lunch").
Ensuite, vous pouvez inclure des trucs de cacao dans votre fichier principal MyCustomFramework.h.
Ensuite, importez simplement '@import MyCustomFramework;' dans votre cible d'application, et vous aurez le reste des CocoaPods à votre disposition. (Ex. Vous montrant l'accès à "chacun" à partir d'ObjectiveSugar).
La question de savoir si vous devez le faire ou non est un problème distinct, mais cela permet à votre cadre personnalisé d'inclure les bibliothèques CocoaPods en lui-même, ce qui permet ensuite à la cible d'application d'inclure simplement votre cadre personnalisé et d'obtenir également tous les CocoaPods.
Désolé pour les multiples images, mais j'aime être visuel.
Je suppose que vous modifiez le framework pour utiliser Pop. Dans ce cas, vous devrez également ajouter le chemin des en-têtes Pop aux chemins d'en-tête de recherche du Framework Build Settings.
Mais si vous modifiez le framework, vous pouvez également créer un podspec pour lui et laisser CocoaPods gérer tout (et envoyer une demande d'extraction au créateur?).
Quant à la question des primes.
Un framework ne doit jamais intégrer d'autres bibliothèques. Si, par exemple, vous souhaitez utiliser AFNetworking dans votre bibliothèque:
POD_ROOT
, etc.Ensuite, cela fonctionne, mais vous avez des instructions d'installation complexes, les utilisateurs doivent ajouter manuellement des ressources, le cas échéant, il est difficile de contrôler la version AFNetworking ajoutée par les utilisateurs et la plupart ne mettront jamais à niveau votre framework car cela pourrait casser leur configuration. Toutes les bonnes raisons de supporter CocoaPods en créant un podspec (vous pouvez continuer à maintenir le projet de bibliothèque framework/statique si vous le voulez vraiment).