2011-09-09 11 views
9

Creé una aplicación de testbed simple en Delphi XE2 y compilé una versión de la aplicación Win32 y OSX.
Comprimí la versión OSX, junto con una copia del archivo libcgunwind dylib runtime y copié estos archivos en una Mac a la que tengo acceso.
Cuando descomprimí el archivo, el mac reconoció mi aplicación OSX y le hice doble clic.¿Por qué mi aplicación Firemonkey abre una ventana de terminal en OSX pero no en Win32?

Esto, a su vez, abrió una ventana de terminal por algún motivo desconocido junto con la forma de mi aplicación simple.
La aplicación se ejecutó y se comportó bien, pero me pregunto por qué se abrirá una ventana de terminal en la Mac.

+0

Supongo que tiene algo que ver con el 'libcgunwind dylib runtime file' que implementó con él. – Johan

+0

Admito que soy un completo Mac OSX nuevo, por falta de una palabra mejor. con el dylib, la aplicación no se ejecutará. ¿Los archivos dylib deben ir en un directorio especial? ¿Tengo que 'instalar' la aplicación en algún lugar específico de Mac para que se ejecute correctamente? Estas son las cosas de las que no tengo idea. – Alan

+0

mi esposa tiene una MacBook y eso es todo lo que sabe mi Mac, creo que podría tratar de explicar este problema a la gente en http://apple.stackexchange.com/ – Johan

Respuesta

2

IIRC esto sucede si se ejecuta el binario directamente en lugar a través de un bundle

aplicaciones Lázaro/FPC tenía el mismo problema. IIRC el binario ejecutado directamente tampoco obtuvo eventos en esas circunstancias, pero esas aplicaciones estaban basadas en Carbono. Ese problema también desapareció cuando se ejecutaba a través de una configuración de paquete (que es prácticamente un manifiesto, unos pocos directorios y un enlace simbólico)

3

Hay una herramienta gratuita disponible para Delphi XE2 que creará el paquete de la aplicación de despliegue OSX para usted. desde Windows, sin la necesidad de PAServer.

http://enesce.com/delphiosx_bundler

Comprobar el readme para obtener instrucciones.

0

Su aplicación debe ejecutarse desde el paquete de aplicaciones. Si lo ejecuta directamente, obtendrá el efecto secundario de ver la ventana del terminal con la línea de comandos que ejecuta la aplicación.

Deseará leer más sobre Application Bundles.

Si está utilizando PAServer, después de ejecutar el programa por primera vez en el Mac, busque en la carpeta siguiente en el Mac para el paquete de aplicaciones:

/Users/[username]/Applications/Embarcadero/PAServer/scratch-dir/[profilename] 

Si su proyecto se llama Proyecto1 , verá un paquete de aplicaciones en esa carpeta llamada Proyecto1.

Si lee el artículo anterior de la wiki, sabrá que Project1 tiene una extensión "oculta" de .app, y todo es realmente una carpeta con todos los archivos necesarios para ejecutar la aplicación.

Para el usuario de Mac OS, el paquete de la aplicación aparece como un único archivo de programa, completo con un ícono. El usuario puede hacer doble clic en el paquete de aplicaciones para ejecutar la aplicación, arrastrarlo a su base, etc.

El paquete de aplicaciones tendrá el icono Delphi de forma predeterminada, pero puede reemplazarlo con su propio icono. En la Mac, simplemente haga clic derecho en el paquete de la aplicación en Finder y seleccione Mostrar contenido del paquete. Allí, busque en la carpeta Contenido/Recursos el archivo .icns.

Utilice la aplicación Icon Composer que se instaló con XCode para crear su archivo de icono .icns a partir de archivos de imagen existentes.

Echa un vistazo por dentro al resto de los contenidos. Verá el archivo dylib requerido, su archivo de programa y el archivo Info.plist, que es un archivo de texto con elementos como ID de aplicación, firmas y otras cosas importantes.

Cuestiones relacionadas