Je suis en train de construire un framework, qui vise à fournir un nouvel environnement de développement pour l'utilisateur, mais j'ai besoin d'utiliser des choses comme RegexKit et presque certainement d'autres cadres établis pour ce faire. Toutes les fonctionnalités exposées à partir de ces frameworks seraient extraites par des classes et des méthodes dans mon propre framework pour des raisons de maintenance (ce qui me permet de changer d'idée sur les dépendances que je veux).Mon framework utilisera d'autres frameworks, mais je voudrais que cela soit transparent pour l'utilisateur final
Dans un monde idéal, je veux juste expédier un seul .framework. Cependant, je suis conscient que contrairement aux bundles et applications standard, il n'est pas possible d'intégrer un framework dans le bundle de framework. Est-ce que j'ai une autre option que d'indiquer à l'utilisateur final qu'il doit également installer RegexKit et toute autre dépendance? J'ai l'impression que cela réduit la valeur d'appel du framework embarqué facile à utiliser que j'avais envisagé de construire.
En ce moment, je me sens comme je l'ai quelques options limitées:
- Force de l'utilisateur pour installer les dépendances.
- Ecrivez mes propres classes qui offrent les mêmes fonctionnalités - heu!
- Si possible, essayez de lier statiquement les cadres tiers (est-ce possible ??)
Mon produit final est idéalement un seul faisceau de .framework qui utilise @rpath et peut donc être installé dans le système ou simplement regroupés avec l'application qui l'utilise.
J'ai juste eu une pensée. Je pourrais vivre avec ça, si c'est possible. Puis-je créer un .bundle standard qui contient tous les frameworks de dépendances à l'intérieur de lui-même, puis fournir un mécanisme pour charger ce bundle à partir du framework principal? Ainsi, le développeur copie toujours un .framework et un .bundle dans leur projet. Effectivement toutes les dépendances sont alors contenues dans une sorte de plugin. Hmm, en pensant à cela plus je pourrais faire une API plus générale pour les plugins chargeables en utilisant le même API de chargement de paquets #thinkingoutloud – d11wtq