¿Cómo hacer un Mac OS X .app con un script de shell?

12

Intenté seguir algunos tutoriales, pero obtengo esto: Error de PowerPC

¿Cómo puedo arreglar esto? Agregué un info.plist (simplemente copié y pegué el archivo de otra aplicación, y cambié algunas cosas).

Además, solía chmod +x myApphacer que el script fuera ejecutable.

PD: estoy usando El Capitan

Gato Flare
fuente
No podemos adivinar lo que hizo antes de recibir el mensaje de error. ¿Qué tutoriales seguiste, después de qué paso te quedaste atascado?
nohillside
1
Creé una carpeta llamada myApp.app, luego una subcarpeta llamada Contenido, luego MacOS, luego un script de shell myApp que contiene #!/bin/bash ; say "Hi" ; exit 0(Con cada uno de los comandos en diferentes líneas, y sin el punto y coma).
Flare Cat
1
Un script bash que tiene ejecutado un conjunto de bits no necesariamente debe colocarse en un paquete para ejecutarse, simplemente haga doble clic si solo está en Finder o ejecútelo desde la Terminal. Si realmente quieres un paquete de aplicaciones, entonces créalo usando AppleScript o Automator, lo último es fácil. Agregue una acción Ejecutar script de Shell y coloque su código en ella.
user3439894
@ user3439894 Traté de automatizar en el método que describiste antes de publicar esto, pero la aplicación no se ejecutó en la computadora de destino.
Flare Cat
@ user3439894 Bueno, por alguna razón no puedo editar mi comentario anterior. El error fue algo así como "Este tipo de aplicación no es compatible con esta computadora".
Flare Cat

Respuestas:

21

Bueno, hace años que uso este simple truco para tener scripts de bash en la aplicación (y realmente no entiendo por qué todas las personas prueban soluciones tan complicadas como crear carpetas de "Contenido", info.plist o usar Automator o Platypus o algo así ... . ????): Cree una carpeta llamada "YourApplication.app". Coloque su archivo de script bash directamente en esta carpeta de la manera que mejor se adapte a usted (Finder, terminal, etc.). El script bash debe ser ejecutable, por supuesto (use chmod + x si lo necesita). No necesita otras carpetas o archivos (hasta que necesite llamar a otros scripts o ejecutables desde su script, por supuesto). El truco consiste en nombrar su script con exactamente el mismo nombre que la carpeta de la aplicación pero sin extensión. En el caso descrito aquí, el archivo de script debe llamarse "YourApplication". Eso es todo ! Funciona en Mac os x desde Snow Leopard hasta Mavericks. Si alguien puede probar nuevas versiones del sistema operativo y decirme.

Nota: El script debe tener al menos 28 bytes de tamaño, de lo contrario no se ejecutará. Se puede rellenar con líneas en blanco para lograr el tamaño mínimo. Además, la primera línea del guión debe ser shebang; por ejemplo #!/bin/basho #!/bin/perl.

Pierre Lagarde
fuente
Intente agregar algunas líneas más, le dará el mensaje que tenía si no hay suficientes líneas en su secuencia de comandos.
Pierre Lagarde
Edité su respuesta para incluir la información crítica que faltaba y la voté.
user3439894
OK, gracias por la corrección y la votación ... He estado usando esto desde hace demasiado tiempo y olvidé la necesidad de 28 bytes ... No tengo ningún script tan pequeño, por supuesto: D
Pierre Lagarde
1
Acabo de probar esto en macOS Sierra y funciona allí también.
user3439894
1
@FlareCat De hecho, acabo de comprobar y supongo que cualquier shebang con un intérprete existente funcionará (intentado con perl). Si probaste otros idiomas, solo dilo;).
Pierre Lagarde
7

Si se trata de un script de shell simple, no es necesario que lo envuelva en un paquete de aplicaciones; puede hacer doble clic en el script en sí. Sin embargo, no tendrá la capacidad de tener un icono personalizado u otras cosas por el estilo.

Creo que hay algunos ayudantes que pueden envolver scripts simples, pero el único con el que tengo experiencia es Platypus, que le permite hacer que los scripts shell / python / perl / ruby ​​/ etc se ejecuten como aplicaciones normales con iconos, I / O redirecciones, etc.

bjb
fuente
El ornitorrinco se ve bien, pero sería genial saber cómo hacerlo manualmente.
Flare Cat
1
Probado Ornitorrinco, ¡funciona exactamente como quería! Gracias por la sugerencia.
Flare Cat