Est-ce que Automator est destiné à créer des applications autonomes distribuables?

6

J'ai une série d'exécutables que je voudrais envelopper dans un .app autonome. Un peu comme ffmpegx le fait pour les exécutables contenus dans son dossier / Resources. J'ai remarqué qu'Automator vous permet de créer une application autonome, mais je ne vois pas comment faire pour:

  • inclure mes exécutables dans le package .app
  • spécifier un chemin relatif lors de l'ajout d'une action "exécuter un script shell", afin que je puisse exécuter mes exécutables lorsque l'utilisateur double-clique sur le .app

Est-ce que Automator est destiné à être utilisé en tant que "constructeur d'applications" ou dois-je utiliser autre chose? Si Automator est la voie à suivre, comment puis-je résoudre les deux problèmes ci-dessus?

Roberto Aloi
la source

Réponses:

9

Ce n'est pas vraiment conçu pour cela, mais je pense que vous pouvez le pirater pour faire ce que vous voulez.

Premièrement, pour obtenir le chemin relatif du package .app, vous devrez ajouter une action Exécuter AppleScript avant votre script shell. Le code pour AppleScript devrait ressembler à ceci:

on run {input, parameters}
   set p to POSIX path of (path to me)
   return {p}
end run

Cela passera le chemin de votre bundle .app à votre action de script shell sous forme d'argument. Il suffit de définir le script d' exécution Shell pour qu'il transmette les entrées sous forme d'arguments . Vous devez également utiliser le chemin d'accès dans votre script shell, mais vous devez: Paramètres d'action de script

Une fois cela fait, vous pouvez regrouper tous les exécutables dont vous avez besoin dans le dossier Contenu / Ressources du bundle .app. Vous pouvez vous y rendre dans le Finder en cliquant avec le bouton droit de la souris sur la commande .app et en sélectionnant Afficher le contenu du paquet .

Remarque importante: Automator réécrit le .app paquet chaque fois que vous enregistrez, vous devrez ajouter les executables à nouveau à chaque fois après que vous faites un changement.

robmathers
la source
1

Automator n'est vraiment pas le bon outil pour ce travail. Au lieu de cela, je vous suggère de regarder AppleScriptObjC, qui est l'un des types de projet que vous pouvez créer à l'aide de Xcode. Vous trouverez de l'aide avec AppleScriptObjC sur le dépassement de capacité .

Negrino
la source