¿Cómo compilo el siguiente script sin activar realmente la aplicación durante la compilación?
tell application "/Applications/VLC.app" to activate
Por ejemplo, si hago esto, no solo creará un paquete de lanzamiento, sino que también activará VLC.app durante la compilación:
osacompile -o foo.app -e 'tell application "/Applications/VLC.app" to activate'
Esto inicia VLC inmediatamente, incluso si no tocas foo.app
.
Jugué con el Info.plist en VLC.app y descubrí que la bandera problemática es esta:
NSAppleScriptEnabled
Si el paquete de la aplicación de destino especifica eso, se iniciará en la compilación. Solo puedo suponer que osacompile
realiza algún tipo de inspección en el paquete, ve esa bandera, y luego de alguna manera tiene que activar la aplicación para inspeccionar su soporte de AppleScript?
VLC es solo un marcador de posición aquí, estoy tratando de crear lanzadores de forma programática para aplicaciones arbitrarias. Mi solución actual es do shell script "open \"/Applications/VLC.app\""
. Funciona para activar (el gancho run
), pero no para otros ganchos, por ejemplo,
on open names
tell application ... to open names
end open
Eso también abre la aplicación de destino en la compilación si declara soporte para AppleScript.
Mi pregunta es: ¿cómo puedo evitar eso y simplemente crear un script de lanzador puro sin que osacompile realmente inicie la aplicación?