3 votos

La inserción de secuencia de comandos de shell .paquete de la aplicación

Estoy tratando de calzador un script de shell en un paquete de la aplicación para que el shell script que se ejecutará cuando me open el paquete, como se opuso a que el ejecutable de poner ahí.

Específicamente, estoy tratando de hacer algunas de configuración del entorno antes de ejecutar el binario, por ejemplo, la configuración de variables de entorno (ya lo he intentado poniendo sólo las variables de entorno en la Información.plist, que no funciona, presumiblemente debido a que MATLAB es una estupidez), y cuando me cd en el paquete y ejecutar manualmente mi script (./StartMATLAB) que funciona; El programa se inicia, y las variables de entorno son reconocidos.

Cuando me haga doble clic en el .aplicación en el Finder, o llame a open MATLAB_R2011b.app sin embargo, se produce un error. Cuando se llama a open desde la línea de comandos, me sale:

LSOpenURLsWithRole() failed with error -10810 for the file /Applications/MATLAB_R2011b.app

He intentado jugar con la Info.plist en vano, pero no estoy demasiado familiarizado con la forma en que se ponen juntos. ¿Alguien sabe por qué no puedo open este paquete?

Gracias!

EDITAR: La Info.plist para el programa que estoy tratando de editar parece tener un montón de java relacionados con la materia. He tratado de eliminar, pero sin suerte hasta el momento. Estoy pensando que el problema puede ser con el .plist archivo, como se espera de un programa basado en java frente a cualquier otro ejecutable

3voto

TraFoO Puntos 11

Esto no funciona para una aplicación firmado, pero aquí es cómo yo era capaz de conseguir que esto funcione:

  1. Crear una copia de la aplicación que estamos tratando de modificar en caso de que algo va mal. (D en el Finder) Para este ejemplo, he modificado el no-app store la versión de VectorDesigner

  2. En La Terminal, cd /Applications/VectorDesigner.app/Contents/MacOS

  3. mv VectorDesigner VectorDesigner\ copy (sustituir el nombre de tu aplicación aquí

  4. pico VectorDesigner (o su editor de elección) y agregar el contenido de la secuencia de comandos.

    He utilizado este script

     #!/bin/sh
     osascript -e "tell Application \"Finder\" to display alert \"Hello World\""
     /Applications/VectorDesigner.app/Contents/MacOS/VectorDesigner\ copy
    

    Lo importante es que la última línea de la llamada el nombre ejecutable.

  5. chmod a+x VectorDesigner

Ahora, cuando hago doble clic en el VectorDesigner icono, me sale el "Hola Mundo" de la ventana, a continuación, se inicia el programa original.

1voto

Jordan W. Puntos 1083

Usted probablemente necesitará cambiar los permisos de archivo, que parece ser el problema.

Abra El Terminal:

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

0voto

Kari Puntos 13

En lugar de "zapato-horning" la secuencia de comandos en la Aplicación de paquete, lo que trata de hacer las cosas al revés?

  1. Crear un shell script que configura el medio ambiente como desee y, a continuación, inicia la Aplicación original (con open , por ejemplo). Usted dijo que esto funciona ya.
  2. Incrustar el script de shell en una Aplicación nueva de paquete utilizando el Ornitorrinco.
  3. (opcional) Insertar la Aplicación original dentro de tu Aplicación nueva de paquete, y tienes el script de lanzamiento que se forma allí.

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