Requisitos para usar 'open -b “bundle.id”' para OS X

0

Tengo una secuencia de comandos posterior a la instalación que abre y ejecuta mi aplicación en silencio. La aplicación se creó con Automator y básicamente ejecuta un Applescript que a su vez ejecuta un script Bash incrustado desde la carpeta de recursos de la aplicación.

La secuencia de comandos postinstall:

#!/bin/bash

open -b "com.company.ApplicationName"

funciona en algunas máquinas y no en otras. Estoy recibiendo un error

LSGetApplicationForInfo() failed with error -10814 while trying to determine the application with bundle identifier com.company.ApplicationName

No he podido determinar por qué. Supongo que me estoy perdiendo algún tipo de software de requisito previo en las máquinas que fallan.

¿Alguien conoce los requisitos para usar open -b "bundleid" ? Xcode, Xcode con herramientas de línea de comandos o algo así? Apreciaría cualquier idea.

    
pregunta TryTryAgain 21.08.2013 - 20:42

1 respuesta

1

Mi conjetura es que está funcionando en sistemas donde la aplicación ha estado presente el tiempo suficiente para que la aplicación se registre en el sistema, pero falla en sistemas donde no ha estado presente por mucho tiempo.

Hay una posible solución aquí:

El comando (toda una línea)

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user

La advertencia

Después de ejecutar este comando, es posible que OS X te pregunte antes de permitirte abrir algunas aplicaciones por primera vez. NO sugeriría ejecutar eso en la Mac de otra persona o es probable que se irriten contigo.

En su lugar, sugeriría usar open -a /path/to/your/app en lugar de open -b {bundle-id}

    
respondido por el TJ Luoma 21.08.2013 - 21:30

Lea otras preguntas en las etiquetas