2009-03-12 6 views
0

J'ai une application Mac OS X au format .app standard et je me demandais quel est le moyen le plus simple d'exécuter un petit script avant le programme principal. Est-ce possible?Exécution d'un script lors de l'exécution d'un package Mac

Edit:

Je veux seulement courir une fois le script, donc si je peux mettre un drapeau ou quelque chose après avoir exécuté ce serait génial!

Deuxième édition:

Je n'ai pas le projet XCode donc je ne peux recompiler quoi que ce soit, ce qui est la raison pour laquelle je suis à la recherche d'une autre méthode.

+0

Est-ce que vous construisez cette application dans xcode à partir de la source, ou êtes-vous en train d'emballer un .app que vous avez reçu et/ou que vous ne pouvez pas recompiler? –

+0

Il s'agit d'une application Adobe AIR. J'essaie donc d'installer Adobe AIR s'il n'est pas déjà installé. Ce n'est pas une application standard (certains fichiers ont été modifiés pour prendre en charge l'intégration matérielle), donc je ne peux pas utiliser le mécanisme de distribution AIR standard. –

Répondre

0

Si l'application est relativement simple, vous pouvez simplement la reconditionner dans un autre ensemble. Vous pouvez écrire un programme court pour exécuter le script, puis lancer leur exécutable, que vous souhaitez inclure dans votre bundle en tant que ressource.

Bien sûr, vous devez également copier toutes les ressources d'origine de l'application.

Puis-je demander quel programme vous essayez de lancer de cette façon?

+0

Comme il s'agit d'une application Adobe AIR, j'essaie d'installer Adobe AIR s'il n'est pas déjà installé. Ce n'est pas une application standard (certains fichiers ont été modifiés pour prendre en charge l'intégration matérielle), donc je ne peux pas utiliser le mécanisme de distribution AIR standard. –

3

Deux possibilités:

  • Si vous avez accès au projet Xcode, vous pouvez mettre votre script dans les ressources de votre application, obtenir son chemin avec:

    [[NSBundle mainBundle] pathForResource:@"preamble" ofType:@"sh"] 
    

    et Invoque il avec un simple appel system() au début de votre fonction main().

  • Si vous n'avez pas accès au projet Xcode, je ne suis pas certain que ce soit possible. Je voudrais essayer quelque chose comme substituer l'exécutable réel avec votre script et ajouter un moyen d'appeler l'exécutable à la fin du script avec une commande exec.

Questions connexes