En utilisant des cadres de un outil en ligne de commande
J'ai construit un utilitaire de ligne de commande (Fondation de l'outil) dans Xcode, à l'aide de Cacao. L'outil permet l'utilisation d'un 3ème partie-cadre.
Tout fonctionne OK dans Xcode, mais comment puis-je déployer ce programme?
Si je exécuter l'application à partir du Finder, il ne peut pas trouver la bibliothèque parce qu'il est à la recherche dans ../Frameworks/etc.
puis-je lier statiquement dans la 3ème partie de cadre?
- Vérifiez la réponse à une question similaire ici -> stackoverflow.com/a/19230699/986
Vous devez vous connecter pour publier un commentaire.
Malheureusement, il n'existe aucun moyen pour regrouper un cadre avec un Utilitaire de ligne de commande sous mac OS X, et je soupçonne que le cadre que vous joignez à s'attend à être regroupés dans l'application du bundle Cadres/répertoire. Si vous avez accès à la cadre de code source, vous pouvez compiler une bibliothèque statique et statique qu'un lien vers votre application (ou de comprendre la source de votre application cible directement). Si vous n'avez pas le code source ou que vous ne voulez pas lier statiquement la bibliothèque pour une raison quelconque, il reste deux options:
Si vous avez accès à l'ensemble du système /Bibliothèque/Frameworks dossier, vous pouvez installer le 3e partie-cadre là. Cela exige que le cadre du Chemin d'Installation (le
INSTALL_PATH
paramètre de construction) dans/Library/Frameworks
au moment de la construction ou que vous utilisez leinstall_name_tool
à modifier les cadres chemin d'installation de/Library/Frameworks
(si vous n'avez pas le cadre du code source).Construire une application bundle (comme si vous construisiez une interface graphique app) avec votre utilitaire de ligne de commande que l'application du module exécutable (c'est à dire dans AppBundle.app/Contents/MacOS/). Vous pouvez ensuite copier le 3e partie-cadre de l'application du bundle cadres de répertoire. Vous pouvez ensuite mettre l'app bundle n'importe où vous voulez et créez un lien symbolique de l'utilitaire de ligne de commande.
L'Option 1 est certainement le plus accepté, mais j'ai utilisé l'option 2 lorsqu'il y a une raison valable.
Vous pouvez trouver plus d'informations sur la construction, la mise en lien et l'installation de cadres d'Apple Des Cadres Guide De Programmation.
Une autre façon, si vous avez le code source pour le cadre, est d'ajouter une bibliothèque statique cibles et construire une lib statique à partir d'elle. Ensuite, vous pouvez lier statiquement dans votre outil de ligne de commande.
De Xcode 9.3.1, j'ai pu le cadre ajoutée à l'outil de ligne de commande par le réglage de la
Mach-O Type
àStatic Library
pour le cadre. Ensuite, dans la ligne de commandetarget
assurez-vous d'ajouter le cadre de laTarget Dependencies
& laLink Binary With Libraries
Build Phases
. Le construit de l'exécutable a été ensuite en mesure d'exécuter sans problèmes.Vous pouvez utiliser marathon de gérer les dépendances
https://github.com/JohnSundell/Marathon
Ce besoin de plus d'idée, si vous voulait distribuer app. (Vous auriez probablement souhaitez installer dans le dossier frameworks dans ce cas d'utilisation.) votre kilométrage peut varier avec cette solution.