He creado y compilado una muy simple c++ juego en un único archivo ejecutable. He probado en varios equipos mac y funciona si la persona manualmente, haga doble clic en el archivo.
Sin embargo, debido a que el juego crea su propia carpeta de datos, y debido a que los archivos ejecutables aspecto de boceto, prefiero paquete de este archivo ejecutable de una aplicación. Básicamente todo lo que necesita es una .aplicación que un usuario puede hacer doble clic en el que será el lanzamiento de mi archivo ejecutable.
Mi primera aproximación fue la creación de un vacío de automator aplicación. Fui a la app y se sustituye la Aplicación "Stub" con mi propio ejecutable. Esto funciona perfectamente en mi máquina. Por desgracia, cada vez que se envía a alguien más, les da un error "Esta aplicación requiere OS X 10.11 o más tarde"
Así que me fui en un equipo que ejecuta 10.6.8, he creado una nueva aplicación automator, y sustituyó a la aplicación de recibo con mi propio ejecutable. Procedí a cargar esta aplicación en un equipo que ejecuta 10.10.5 y veo de nuevo el mismo error.
Esto me lleva a creer que algo en el archivo ejecutable de la Aplicación del trozo de decirle a la aplicación "no me abra si el equipo no está ejecutando 10.11." Sin embargo, si yo manualmente ver el contenido de la aplicación y buscar el archivo ejecutable, que puede funcionar bien en 10.10.5. En otras palabras, el ejecutable es totalmente ejecutable cuando corrió directamente, pero por alguna razón cuando se empaqueta en el app no dejar que el sistema se abra la aplicación.
Así que mi pregunta es: hay alguna manera de que pueda paquete de mi ejecutable en una .aplicación que cualquiera puede ejecutar? Incluso si dispone de una versión incompatible, espero que aún así sería intentar abrir la app para tener el ejecutable de salir con un error como "Instrucción Ilegal"
ACTUALIZACIÓN
He conseguido una solución, pero no es una solución ideal. Yo puedo hacer una automator aplicación que se ejecuta un script de shell que el cd dentro de la aplicación y se ejecuta a mi ejecutable que coloco junto a la solicitud de código auxiliar. Funciona, pero significa que la aplicación lleva mucho más tiempo abierto, y si el usuario cambia el nombre de la aplicación que no funciona. Aquí está la secuencia de comandos:
DIR=`ps x | grep Brick\ Breaker | grep -v grep | cut -c 28- `
DIR=`dirname "$DIR"`
cd "$DIR"
nohup ./BrickBreaker >/dev/null 2>&1 &
Sigue buscando una manera mejor de hacer esto, sin embargo.