2009-08-13 6 views
2

Est-il possible d'avoir deux exécutables chacun avec son propre plist pour partager le même paquet. Puis dépend de la façon dont l'application est exécutée (paramètres) pour charger l'exécutable approprié. Imaginez le cas où nous avons une application principale (exécutable avec interface utilisateur) et la mini-application (version plus courte de l'application principale avec sa propre interface utilisateur), puis dépendez des paramètres utilisés par l'utilisateur pour lancer l'application. exécutable dans le même bundle.Deux exécutables dans un paquet sur MAC

Salutations

Répondre

0

Je crois que je vous comprends. Vous voulez partager un plist entre deux exécutables. Il suffit de se référer à la même plist dans chaque cas: tutorial for single executable plist.

+0

Ne le pensez pas. Ce que l'OP veut, c'est avoir deux exécutables indépendants pour vivre dans le même dossier .app, avec deux informations non liées. –

+0

Je ne veux pas partager une plist pour deux exécutables. Ce que je veux est d'intégrer une application avec son propre plist et ressources dans le même paquet avec une autre application, puis en fonction des paramètres fournis pour lancer une application appropriée qui va utiliser son propre plist. Cheers Dejan –

0

Je ne sais pas si c'est possible. Honnêtement, j'en doute parce que l'information de plist est aussi utilisée pour définir l'icône et ainsi de suite, donc vous pourriez confondre le Finder si cela était possible (quelle icône devrait-il afficher?). Cependant, je ne suis pas un expert en Bundles, du tout.

Je vous donne une solution de contournement. Créez un script de démultiplexage qui exécute l'exécutable approprié en fonction de vos paramètres, puis associez le script aux informations de plist.

2

Pas exactement, mais vous pourriez réaliser quelque chose de similaire.

Vous pouvez avoir un ensemble d'applications maître, qui détermine la version du code à exécuter, puis disposer de plusieurs ensembles de plug-ins (en tant que ressources de l'application) qui implémentent réellement les différentes versions. Chaque bundle de plug-in doit avoir ses propres fichiers Info.plist/nib/etc

Voir le documentation for NSBundle pour plus de détails sur le chargement des bundles et l'exécution de leur code.

+0

C'est le "Mac Way" pour le faire, et mon application fonctionne comme ça. Les API NSBundle permettent de charger n'importe quel ensemble de codes dont vous avez besoin en mémoire, soit par nom, par ID de regroupement ou par chemin. Ma seule remarque est que les sous-groupes ne vont pas dans le répertoire Ressources, plutôt dans le répertoire Plugins - il y a une place spéciale pour cela dans le paquet de votre application "principale". Plus précisément, dans Xcode, dans l'étape de construction "Copier les fichiers" qui copie vos bundles de plugins dans le bundle principal, sélectionnez "Plugins" comme répertoire dans lequel copier. –

Questions connexes