26 votos

¿Cómo hacer una aplicación de Mac OS X con un shell script?

He intentado seguir algunos tutoriales, pero me sale esto: PowerPC Error

¿Cómo puedo solucionarlo? He añadido un info.plist (simplemente he copiado y pegado el archivo de otra aplicación, y he cambiado algunas cosas).

Además, he utilizado chmod +x myApp para hacer ejecutable el script.

P.D. Estoy usando El Capitan

0 votos

No podemos adivinar qué hiciste antes de recibir el mensaje de error. Qué tutoriales seguiste, después de qué paso te quedaste atascado?

1 votos

He creado una carpeta llamada myApp.app, luego una subcarpeta llamada Contents, luego MacOS, luego un shell myApp script que contiene #!/bin/bash ; say "Hi" ; exit 0 (Con cada uno de los comandos en diferentes líneas, y sin el punto y coma).

3 votos

Un bash script que tiene el bit de ejecución establecido no necesita ser colocado en un paquete para ser ejecutado, simplemente haga doble clic en él si está en el Finder o ejecútelo desde la Terminal. Si realmente quieres un paquete de aplicaciones entonces créalo usando AppleScript o Automator, este último es fácil. Añade una acción Run Shell script y coloca tu código en ella.

48voto

PrivateSniper Puntos 345

Bueno, hace años que uso este sencillo truco para tener bash scripts en la aplicación (y realmente no entiendo por qué toda la gente intenta soluciones tan complicadas como crear carpetas de "Contenido", info.plist o usar Automator o Platypus o así... ????).

  1. Cree una carpeta llamada "YourApplication.app". Se puede crear en cualquier ubicación que sea conveniente para su uso. Sin embargo, las ubicaciones más compatibles con el sistema operativo pueden ser /Applications o su propia carpeta ~/Applications.
  2. Pon tu archivo script directamente en esta carpeta de la forma que más te convenga (Finder, terminal, etc). El script debe ser ejecutable por supuesto (usa chmod +x si lo necesitas). No hay necesidad de otras carpetas o archivos (hasta que necesites llamar a otros o ejecutables desde dentro de tu script por supuesto) El truco es nombrar tu script con exactamente el mismo nombre que la carpeta de la aplicación pero sin extensión. En el caso descrito aquí el archivo script debe llamarse "TuAplicación".

¡Eso es todo! Funciona en Mac os x desde Snow Leopard hasta Mavericks. Si alguien puede probar en las nuevas versiones del sistema operativo y me dicen.

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

0 votos

Intenta añadir algunas líneas más, te da el mensaje que tenías si no hay suficientes líneas en tu script.

1 votos

He editado tu respuesta para incluir la información crítica que faltaba y la he votado.

0 votos

OK gracias por la corrección y el upvoting... He estado usando esto desde hace demasiado tiempo y me olvidé de la necesidad de 28 bytes... No tengo ningún script tan pequeño por supuesto :D

20voto

Harry Lime Puntos 8229

La respuesta actualmente aceptada no me sirve del todo. Me aparece el pequeño icono de la aplicación rota.

enter image description here

Lo siguiente me funciona bajo OSX 10.15.7 (Catalina). Puedes cambiar el YourApplication en todas las instrucciones siguientes para que sea el nombre que realmente quieres.

  1. mkdir un directorio con el .app extensión en el /Applications carpeta con un Contents y luego MacOS subdirectorios.

    mkdir -p /Applications/YourApplication.app/Contents/MacOS
  2. Mueve tu script a este directorio y nómbralo igual que la carpeta de la aplicación superior pero sin el .app y sin la extensión del shell script:

    mv yourscript.sh /Applications/YourApplication.app/Contents/MacOS/YourApplication
  3. Asegúrate de que tu script es ejecutable:

    chmod +x /Applications/YourApplication.app/Contents/MacOS/YourApplication

Tu aplicación debería estar ahora lista y el script debería ejecutarse cuando hagas doble clic sobre él. Es importante tener en cuenta que si cambias el nombre de la aplicación, tendrás que cambiar el nombre del script subyacente.


Para añadir un icono a tu nueva aplicación, tienes que hacer lo siguiente:

  1. Busca o crea un PNG que quieras que sea tu icono.

  2. Abra la imagen en la aplicación Vista Previa - otras aplicaciones gráficas también pueden funcionar.

  3. Pulse comando-a para seleccionar todo y luego comando-c para copiarlo en el portapapeles.

  4. Seleccione su aplicación en el Finder y pulse comando-i para obtener la ventana de información.

  5. Haga clic en el icono de la esquina superior izquierda de la ventana de información para seleccionarla:

    enter image description here

  6. Pegue la imagen desde el portapapeles, lo que debería cambiar el icono.

    enter image description here

También puedes abrir la ventana de obtención de información de otra aplicación, seleccionar su icono y copiarlo para poder pegarlo en tu nueva aplicación. Después de asignar cualquier icono, si miras en tu .app debería ver un nombre de archivo que empieza por Icon .

1 votos

No es necesario tener todas esas carpetas en la aplicación uno. Simplemente pon tu script directamente en la carpeta root de la aplicación (es decir, /Aplicaciones/SuAplicación.app en tu caso), y hazlo ejecutable. Sólo necesita tener al menos 28 bytes de tamaño y tener un shebang, como cualquier script debe tener.

0 votos

Todo esto está muy bien, y funciona como se describe, pero nada de esto hace que sea visible para Launcher, que es la razón principal por la que quiero hacer mi script en una "App" en primer lugar. ¿Alguien puede aportar esto último?

0 votos

¿Qué es el lanzador @q.undertow? ¿Te refieres a LaunchPad? ¿Tal vez las instrucciones de aquí sobre cómo arrastrar su nueva aplicación al icono de LaunchPad? appletoolbox.com/

12voto

Jenea Puntos 2702

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

Creo que hay algunos ayudantes por ahí que pueden envolver simples scripts, pero el único con el que tengo experiencia es Ornitorrinco que le permite hacer que los shell/Python/perl/ruby/etc scripts se ejecuten como aplicaciones normales con iconos, redirecciones de E/S, etc.

0 votos

El ornitorrinco tiene buena pinta, pero sería genial saber cómo hacerlo manualmente.

1 votos

He probado Platypus, ¡funciona exactamente como quería! Gracias por la sugerencia.

4voto

BFTrick Puntos 502

Platypus no parece ser utilizable desde la línea de comandos (que es probablemente donde se encuentra su shell script).

Este script https://github.com/andrewp-as-is/mac-appify que puede instalarse con pip para los usuarios de Python ( pip install mac-appify ) parece llevar a cabo los pasos de la respuesta anterior .

Puede ser útil así

pip install mac-appify
appify script.sh  /Applications/$NAME.app

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X