Insertar script de shell en el package .app

Estoy intentando conectar un script de shell en un package de aplicaciones para que el script de shell se ejecute cuando open el package, en lugar del ejecutable allí.

Específicamente, estoy tratando de hacer alguna configuration de entorno antes de ejecutar el binary, por ejemplo, estableciendo variables de entorno (ya intenté simplemente poner las variables de entorno en Info.plist, lo cual no funcionó, presumiblemente porque MATLAB es estúpido), y cuando cd en el package y ejecuto manualmente mi script, ( ./StartMATLAB ) funciona; El progtwig se inicia y las variables de entorno son reconocidas.

  • Compruebe si las tapas se bloquean en la terminal
  • Herramientas de línea de command disponibles por defecto
  • ¿Cómo ejecuto el Finder desde el terminal o la línea de command ?
  • Aplicación de compilation Osascript
  • Ejecute AppleScript desde el script bash
  • ¿Cómo encontrar .bashrc o .zshrc?
  • Cuando hago doble clic en .app en Finder, o llamo open MATLAB_R2011b.app , sin embargo, falla. Cuando llamo para open desde la línea de command, obtengo:

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

    Intenté jugar con Info.plist sin éxito, pero no estoy muy familiarizado con cómo se combinan. ¿Alguien sabe por qué no puedo open este package?

    ¡Gracias!

    EDITAR: El Info.plist para el progtwig que estoy tratando de editar parece tener muchas cosas relacionadas con Java. Intenté eliminarlo, pero hasta ahora no tuve suerte. Estoy pensando que el problema puede ser con el file .plist, ya que está esperando un progtwig basado en Java en lugar de cualquier otro ejecutable

  • ¿Cómo puedo cambiar un ícono de file o carpeta usando la Terminal?
  • Cómo saber qué aplicación de terminal (iTerm o Terminal) se ejecuta desde dentro de bash
  • ¿Por qué la vista previa cambia el ctime de un pdf y cómo puedo deshabilitarlo?
  • Actualización automática de Homebrew
  • ¿Cuál es la relación entre Xcode y las herramientas de command-line de Xcode?
  • ¿El button de encendido de mi iPhone está apagado programáticamente?
  • 3 Solutions collect form web for “Insertar script de shell en el package .app”

    Esto no funcionará para una aplicación firmada, pero así es cómo pude hacer que esto funcione:

    1. Cree una copy de la aplicación que intenta modificar en caso de que algo salga mal. ( D en Finder) Para mi ejemplo aquí, modifiqué la versión de tienda de aplicaciones de VectorDesigner

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

    3. mv VectorDesigner VectorDesigner\ copy (sustituya el nombre de su aplicación aquí

    4. pico VectorDesigner (o su editor de elección) y agregue el contenido de su secuencia de commands.

      Usé 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 llame al ejecutable renombrado.

    5. chmod a+x VectorDesigner

    Ahora, cuando hago doble clic en el ícono VectorDesigner, aparece la window "Hello World" y luego se inicia el progtwig original.

    Probablemente necesites cambiar los permissions del file, ese parece ser el problema.

    Terminal abierta:

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

    En lugar de "hornear el zapato" el guión en el package de la aplicación, ¿qué hay de hacerlo al revés?

    1. Cree un script de shell que configure el entorno como desee y luego open aplicación original (con open por ejemplo). Dijiste que esto ya funciona
    2. Incruste el script de shell en un nuevo package de aplicaciones utilizando Platypus.
    3. (opcional) Incruste la aplicación original dentro de su nuevo package de aplicaciones y haga que su script la inicie allí.
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).