Framework Cocoa Touch Swift avec library embarquée
mushu
Membre
Bonjour,
je travaille sur une suite d'applications qui contiennent des modules en communs.
Je souhaite ranger les modules communs dans un Cocoa Touch Framework.
Ce framework pourrait aussi contenir les libraries Alamofire et SwiftyJSON car elles sont grandement utilisées au seins des modules.
Actuellement et malgré les nombreux tutos, articles, etc. lus sur internet, je n'arrive pas à mettre une solution stable en place.
- Est-il possible d'intégrer les frameworks Alamofire et SwiftyJSON au sein du framework maison ou vaut-il mieux les intégrer au différents projets utilisant le framework (ils en auront aussi besoin individuellement) ?
- Est-il possible de générer un framework fonctionnant sur le simulateur et sur téléphone (quelque soient les méthodes: subproject ou pas, bibliothèque dynamique ou statique, fat library) ?
Je vous remercie par avance toutes aides et reflexions apportées
Et bonne journée
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
M'enfin, les dragons n'ont pas de cheveux, même les spécimens nains chinois !
A partir du moment ou un framework est "embedded" dans une application tous ces avantages disparaissent et au final on galère plus pour pas grand chose.
Donc comme mes camarades : CocoaPods...
Après, évidemment si le but est de le distribuer sans le code source, ça change tout.
Je dois être le seul à toujours préférer des framework bien propre quitte à les intégrer dans le bundle de l'application en privé...
Au moins on a quelque chose de propre, d'indépendant, avec seulement le nécessaire de visible en terme de .h et en plus on gagne du temps à la compilation.
Bref, vive les vrai framework !
A ma connaissance une application publiée sur le Mac App Store ne peux rien installer dans /Library/Frameworks.
Les frameworks même embarqués ont une grande vertue: Divide & Conquer. Quand je vois des boites où un simple stagiaire peut compiler l'ensemble d'un projet et se tailler avec le code source sur une clé Usb cela me laisse sans voix. Et c'est pourtant du vécu dans une société classée "secret défense".
Si tu publies pour iOS, tu ne peux utiliser les frameworks dynamiques que si tu supportes au minimum iOS8.
Si tu veux absolument générer un framework dynamique, et l'intégrer toi-même manuellement ensuite dans tes projets comme n'importe quel autre framework système (plutôt que de laisser CocoaPods faire l'intégration du framework dans ton projet) tu peux toujours utiliser CocoaPods pour définir tes fichiers à inclure dans ton framework, ses dépendances, etc...
Il suffit d'utiliser :
- soit le plugin cocoapods-packager (qui utilise un podspec décrivant ta lib)
- soit cocoapods-rome (qui utilise un Podfile pour décrire les pods/libs que tu veux inclure dans ton framework)
Chacun de ces plugins permettent de générer le framework dynamique pour toi automatiquement, bien configuré et tout.Bon je vais retenter avec Cocoapods.
J'ai déjà mis en place le private repo pour le framework maison.
Du coup certaines classes de mon framework utilisent les framework tierces Alamofire et SwiftyJSON et certaines classes de mon projet aussi.
Dois-je créer intégrer les framework tierces avec cocoapods dans le framework ?
et / ou dans le projet ?
Bon voici mes avancées :
mon framework intègre les lib tierces avec le système de subproject drag'n'droppées.
J'intègre ensuite mon framework maison dans mon projet produit grâce à CocoaPods.
Problème : j'ai une classe de mon projet produit qui doit importer la lib Alamofire mais ne la trouve pas.
Comment rendre accessibles les lib tierces intégrées dans le framework au projet produit ?