Inicio > Delphi, iOS, OSX, XE4 > Configuración del entorno de trabajo iOS/OSX (Delphi XE4)

Configuración del entorno de trabajo iOS/OSX (Delphi XE4)

Las últimas versiones de Delphi incluyen, tal y como podéis leer en las características del producto, soporte para dispositivos iOS y OSX (MAC). Hace tiempo que deseaba probar estas características, así que aprovechando que estos día he tenido acceso a una máquina Apple, he probado a “poner en marcha” el entorno de desarrollo y a hacerlo funcionar.

En general el proceso ha sido más sencillo de lo que pensaba (aunque tal vez también con más pasos de los que esperaba…). Hay que realizar varias operaciones, pero en sí, ninguno complicada.

Todavía no dispongo de un dispositivo iOS, así que me he tenido que quedar (conformar) en el punto de ejecutar la aplicación en OSX (en la versión 10.8) utilizando los simuladores correspondientes a estos dispositivos.

Según la documentación necesitamos tener instalada una versión OS X 10.7 Lion o 10.8 Mountain Lion en nuestro MAC. A partir de ahí, para dispositivos móviles, es necesario contar con una versión iOS 5.1 o superior.

Instalación de XCode en MAC

Imagen404Para iniciar la configuración de nuestro equipo, lo primero que debemos instalar es XCode. El entorno de desarrollo en MAC. En mi caso lo he  descargado directamente de “Apple  App Store”, aunque si disponéis del DVD de instalación, es posible que podáis instalarlo desde allí.

Imagen405

En mi caso he descargado la versión 4.6.2, que es la que actualmente se encuentra en la App Store y me está funcionando sin problemas.

Para poder completar el proceso de descarga se os pedirá el ID de Apple. Si no lo tenéis llegados a este punto, desde aquí mismo podéis creároslo. Una vez completado comenzará el proceso de descarga.

Imagen407

 

Instalación de PAServer

Una vez instalado XCode, lo siguiente que necesitamos es la aplicación Platform Assitant (PAServer) que nos ayudará a desarrollar aplicaciones multiplataforma. Es el servidor remoto de que necesitamos instalar para poder comunicar nuestro IDE (windows) con nuestro MAC. Por defecto PAServer trabaja con el puerto 64211, como veremos en la instalación.  Si deseamos podemos cambiarlo, y tanto en un caso como en otro, tendremos que tener presente esto a la hora de trabajar en Windows con él.
Es lógico que antivirus y firewalls pueden bloquear o avisar en algún momento del uso de este puerto y en caso de fallos de comunicación, podemos iniciar por revisar estos programas (si los tenemos instalados).

Para la instalación de PAServer necesitamos el fichero RADPAServerXE4.pkg, que podemos conseguir de varias formas:

OPCIÓN 1: Si hemos realizado la instalación de XE4 en Windows, junto con la instalación, se copia este fichero dentro de la estructura de carpetas de la instalación. En mi máquina, por ejemplo (Windows 7), se encuentra en:

«C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\PAServer\RADPAServerXE4.pkg»

Bastará con copiarlo a nuestro MAC e instalarlo.

En Windows Vista o en XP el directorio de instalación es muy similar a este, modificando la primera carpeta de la ruta.

OPCIÓN 2: La otra opción, es directamente descargarlo desde la página de Embarcadero e instalarlo directamente desde la máquina OSX. Se puede encontrar en:

http://installers.codegear.com/release/radstudio/11.0/PAServer/RADPAServerXE4.pkg

Una vez que iniciamos la instalación, basta con seguir los pasos del asistente para instalar la aplicación. Una vez finalizada tendremos la aplicación RAD PAServer XE4.

 Imagen408Imagen409Imagen410Imagen411

Al ejecutarla, la aplicación nos pedirá un password para posteriormente poder conectarse (podemos dejarlo en blanco) y nos solicitará permisos de root para poder continuar. Una vez en marcha, podremos ver el puerto por el que la aplicación está esperando conexiones, que si no hemos modificado, será el 64211, como hemos comentado anteriormente.

Imagen412

Otras configuraciones

Dentro de XCode, necesitaremos instalar algunos “componentes” adicionales, si no están instalados, necesarios para poder trabajar y para poder acceder a los simuladores de los diferentes dispositivos.

Abrimos XCode, accedemos a las preferencias y dentro de la sección Downloads, seleccionamos:

  • Command Line Tools
  • iOS Simulator 5.1 si no está instalado.
  • … si deseaís alguno más, podéis instalarlo opcionalmente.

Imagen413

 

Configuraciones en el IDE (Delphi)

De vuelta en el IDE de Delphi (windows) es necesario realizar algunos cambios relativos a la conexión con el equipo OSX.  Para poder conectar ambos equipos, debemos crear un “Perfil de conexión” (Profile Manager) desde el IDE de Delphi, donde especificaremos los datos de conectividad entre ambos. Desde las opciones (Tools/Options) accederemos a la sección Connection Profile Manager.

Imagen414

Crearemos un nuevo “perfil” (“profile”) donde especificaremos el nombre de la conexión, el sistema a conectar (OSX en nuestro caso), la dirección IP de nuestro MAC, el puerto de conexión (por defecto 64211, si no lo hemos modificado) y el password, si es que hemos especificado alguno en la ejecución de PAServer.

Imagen416

Desde esta misma ventana podemos testear la conexión que hemos configurado. Para ello deberemos tener en marcha PAServer en nuestra máquina con OSX. Si hay algún problema de conexión, obtendremos un mensaje de “Connection failed”, si por el contrario, la conexión es correcta obtendremos un mensaje de “Connection succeeded”, como los que aparecen más abajo.

Imagen417Imagen418

Adicionalmente debemos añadir en la Sección “SDK Manager”, los perfiles necesarios para los diferentes dispositivos sobre los que vayamos a desarrollar. Podemos añadir tantos perfiles como necesitemos, seleccionando el sistema (OSX, IOS), la conexión configurada anteriormente en el “Connection Profile Manager” y un SDK entre los disponibles.

Imagen420Imagen419

Si todo esto es correcto, ya deberíamos tener configurada nuestra conexión entre ambos equipos con todo lo necesario para trabajar.

Probando el entorno de desarrollo (Windows/OSX)

Imagen421Para probar nuestra configuración. vamos a crear una aplicación básica que podamos ejecutar tanto en nuestro sistema Windows, como en nuestro equipo MAC. Para ello crearemos una nueva “Firemonkey Desktop application” (HD).

Bastará con un simple formulario y un par de botones. en mi caso además he añadido una imagen con una animación (TFloatAnimation) que la hace rotar constantemente y un efecto (TShadowEffect) sobre este mismo componente que le añade una sombra.

El código disponible en el botón es lo suficientemente sencillo para no necesitar grandes explicaciones.

procedure TForm1.Button1Click(Sender: TObject);
var
  Str:string;
begin
  Str := 'Hola mundo!!! ;';
{$IFDEF MSWINDOWS}
  Str := Str + ' (ejecutando en MS Windows)';
{$ELSE}
  Str := Str + ' (ejecutando en OSX)';
{$ENDIF}
 
  ShowMessage(Str);
end;

He añadido un condicional (MSWINDOWS) simplemente para distinguir el mensaje que aparecerá en la ejecución en Windows con el que aparecerá en la ejecución en OSX. Hay muchos más condicionales que se pueden utilizar referentes a la plataforma de despliegue, a la versión del sistema, al procesador,… que se pueden consultar aquí.

Si ejecutamos el programa, el resultado es el esperado. Nuestra aplicación Windows que cuando se pulsa el botón, muestra un mensaje de sistema con el mensaje “Hola Mundo !!!”, seguido del texto condicional.

Imagen422

Para poder ejecutar este mismo programa en OSX y comprobar si nuestra configuración es correcta, necesitamos añadir como plataforma de despliegue OSX. En el IDE basta con Imagen423seleccionar en el “Project Manager” que deseamos añadir esta nueva “Target platform”. Si las configuraciones anteriores (SDK) se han realizado correctamente, en el desplegable ya aparecerá la opción OSX, para seleccionar.

Basta con crear esta nueva “target platform” y seleccionarla como la predeterminada (doble click).

Si compilamos y ejecutamos ahora nuestra aplicación, y pasamos a nuestra máquina OSX (con PAServer ejecutando), veremos cómo la aplicación se ejecuta sin problemas. Si en este caso pulsamos sobre el botón, comprobaremos que el mensaje se despliega en pantalla con un par de diferencias. El estilo es nativo de OSX (como es de esperar) y el mensaje en el que hemos usado el condicional, ahora muestra el correspondiente a OSX.

reflectedImage (1)

Probando el entorno de desarrollo (iOS)

Finalmente, aunque no pueda probarlo en un dispositivo real (que necesitaría estar conectado por USB al MAC) puedo testear algo similar con un dispositivo iOS, en este caso utilizando los simuladores.

A diferencia de versiones anteriores de Delphi, en XE4 ya dispongo de los simuladores en el entorno de desarrollo, de forma que puedo diseñar mi aplicación de una forma más cómoda.

Imagen426

Es este caso desde el menú Nuevo, voy a seleccionar “Firemonkey mobile Application”. Una vez que accedo al asistente de aplicaciones móviles (que se ve en la imagen que hay encima de este párrafo) podemos seleccionar entre alguna plantillas ya existentes de aplicaciones, o simplemente la opción de “Blank Application”.

Para mi ejemplo voy a seleccionar “Header/Footer with Navigation”, que me creo una aplicación en blanco, con la plantilla seleccionada (añade paneles en la parte superior e inferior de la pantalla.)

Ahora podemos ver en el IDE de Delphi el simulador y podemos seleccionar entre los diferentes dispositivos (a la derecha) que podemos utilizar; iPad, iPhone, iPhone 5 y Custom device. También tenemos un botón (primero a la izquierda) con el que podemos rotar la vista del dispositivo para comprobar como se ve la aplicación, en todas las orientaciones.

Imagen428

Si ejecutamos la aplicación y cambiamos a la máquina OSX, veremos como se pone en marcha el simulador de iOS y podemos probar nuestra aplicación. El este caso, como era de esperar, el mismo código utilizando antes sigue funcionando y en este caso el mensaje mostrado sale con el estilo del sistema utilizado.

Imagen429

De igual modo podríamos seleccionar diferentes dispositivos en el “Project manager” para poder probar la aplicación en Imagen430diferentes “targets”.

Una vez que ejecutamos la aplicación desde la máquina destino (OSX) podemos modificar el comportamiento de esta en el momento de ejecutar. Podemos seleccionar diferentes escalas de visualización y tenemos opciones para girar el dispositivo, agitarlo, pulsar los botones, simular teclado, activar/desactivar la barra de estado y en general, simular todos los comportamientos posibles del aparato.

Con esto, doy por completado este primer artículo introductorio. Espero que sirva como una guía, junto con la documentación existente en Embarcadero, para aquellas personas que quieran iniciar las pruebas con Delphi para desarrollar en iOS/OSX.

Como siempre, los comentarios, sugerencias, críticas y demás serán bienvenidos.

Un saludo y hasta la próxima.

Vota este post
Categories: Delphi, iOS, OSX, XE4 Tags: , ,
  1. martes, 30 de abril de 2013 a las 01:12 | #1

    Muy bien tutorial Neftalí,como es usual ud siempre brindando muy buena informacion y detallada al minimo,una vez mas ser agradece por su tiempo y el aporte hecho.

    Saludos
    Pablo A
    Lima – Peru

  2. casimiro
    martes, 30 de abril de 2013 a las 09:11 | #2

    Vaya, qué buen trabajo, seguro que muchos te lo agradecerán.
    Saludos.

  3. Neftalí
    jueves, 2 de mayo de 2013 a las 18:28 | #3

    @casimiro

    @Pablo

    Gracias a ambos. Espero que así sea y que sea de utilidad a alguien que esté en el mismo punto.

    Un saludo.

  4. Jhonny Suárez
    martes, 7 de mayo de 2013 a las 18:30 | #4

    Que bien, muchas gracias. Me ha servido mucho.

  5. DAVID
    viernes, 10 de mayo de 2013 a las 15:39 | #5

    Hola he seguido tu tutorial para desarrollar una app en delphi xe4, y no consigo que funcione. me consigo conectar con el servidor rad paserver de la maquina virtual, pero a la hora de ejecutar la aplicacion en delphi, me sale un mensaje de «session ended», y no salgo de ahi. He configurado el «connection profile manager» y las dos «SDK manager». no sabras a que es debido?? Es que no encuentro a nadie con el mismo problema en internet.
    Un saludo y muchas gracias
    David Hernanz

  6. Neftalí
    viernes, 10 de mayo de 2013 a las 16:00 | #6

    @DAVID
    Hola.
    En mi caso no tuve ningun problema. La verdad es que fue todo como la seda a la primera.
    ¿Tal vez algun programa que esté cerrándote la conexión?
    Si tienes antivirus, firewall,… desactívalos temporalmente para probar.

    Un saludo.

  7. jueves, 16 de mayo de 2013 a las 21:13 | #7

    Muy buena ilustración pero por que no hay simuladores en windows para los dispositivos ios seriamucho mas interesentaes

  8. Neftalí
    viernes, 17 de mayo de 2013 a las 08:31 | #8

    @Carlos E Velez Farak
    Hola Carlos.
    Pues las 2 últimas imágenes te muestran tanto el simulador en Windows, como el simulador en iOS. El el caso de Windows el simulador es para el diseño, suficiente para lo que se necesita, pues al fin y al cabo estamos programando para dispositivos iOS.

    Un saludo.

  9. Jesus
    lunes, 17 de junio de 2013 a las 19:46 | #9

    David, tengo el mismo problema que tu. ..lo lograste resolver?.. Gracias. Saludos

  10. Jesus
    miércoles, 19 de junio de 2013 a las 08:46 | #10

    Gracias por el tutorial Neftali, por favor podrias poner las maquinas y sistemas operativos que usas?, yo con iMac 10.6.8 (Snow Leopard) y XE4 sobre W7 (32 bits) y maquina con i3 no va, tengo el mismo error que David (session ended). He mirado firewall, antivirus, etc y no hay nada que cierre ninguna conexion…Gracia. Saludos.

  11. Neftalí
    miércoles, 19 de junio de 2013 a las 09:22 | #11

    @Jesus
    Hola.
    En mi caso, delphi lo tengo en un Windows 7 64 bits (i5), y el MAC tiene OS X Mountain Lion 10.8.2.

    Un saludo.

  12. Jesus
    sábado, 22 de junio de 2013 a las 09:27 | #12

    Hola Neftali. Gracias por la informacion. Efectivamente, he puesto Mountain Lion 10.8.4 en un disco externo y todo va como la seda ahora.

    Saludos
    Jesus

  13. Luis Pineda
    domingo, 23 de junio de 2013 a las 02:38 | #13

    Hola amigo. muy buena explicacionn. Hasta el momento solo he podido simular una aplicacion mobile en la Mac.pero como puedo compilar el producto finalEn Delphi Xe2 existi­a una opcion Export to Xcode. te generaba los archivos necesarios para compilar el proyecto en xcode.pero, Delphi XE4 no tiene la opcion. cual es el paso a seguir o como puedo abrir mi proyecto firemonkey en el xcode para compilar el .app final. Saludos

  14. Neftalí
    martes, 25 de junio de 2013 a las 10:16 | #14

    @Luis Pineda
    Hola Luis.
    Debes generar un proyecto Firemonkey y generar como plataforma de salida al compilar OSX. Con eso debería ser suficiente.

  15. Eric
    viernes, 28 de junio de 2013 a las 19:08 | #15

    Tutorial muy interesante, lamentablemente a mi tambiien me da el error de Connection to 87.230.60.1 failed on port 64211.
    He comprobado antivirus, firewall, etc., nada. El equipo que tengo en la cuenta de Macincloud tiene el OSX 10.8.4
    ¿Alguna sugerencia? Saludos.

  16. Alejandro
    jueves, 1 de mayo de 2014 a las 17:04 | #16

    Que buen tutorial, me ha funcionado en OS X 10.8.5, y; con XE6… Seguro que estarás preparando otro tutorial con Android. Saludos

  17. marcos
    martes, 2 de septiembre de 2014 a las 01:27 | #17

    Hola. Vi que un usuario tiene el error de session ended. Alguen que tenga la solucion? A mi me pasa lo mismo. Ya deshabilite antivirus. Firewall. Q opinan?

  18. Neftalí
    lunes, 8 de septiembre de 2014 a las 08:45 | #18

    @marcos
    ¿En qué punto te da este error?

  19. Peterdog
    jueves, 19 de marzo de 2015 a las 10:13 | #19

    Buenas he segido el manual y he consegudio ejecuar la aplicacion en el Mac osx pero no tengo manera de hacerla ejecutar en iOS me da un error.
    [PAClient Error] Error: E0264 Unable to execute ‘»/usr/bin/codesign» –en «/Users/Username/RADPAServer/scratch-dir/MY_Mac/Hola_Mundo.app/Entitlements.plist» -s «iPhone Developer?» -f «/Users/Username/RADPAServer/scratch-dir/My_Mac/Hola_Mundo.app»‘ (Error 1)
    [PAClient Error] Error: E0264 iPhone Developer: no identity found

    Alguien me puede devir a que es debido??

    Indicar lo siguiente
    Mac Osx 10.10.2
    SDK 8.2
    Tengo certificado de desarrollador
    Con Xcode 6.2 puedo crear app para iOS y se ejecutan en el iphone
    Tambien puedo compilar desde XE7 app para OSx

  20. Neftalí
    jueves, 19 de marzo de 2015 a las 10:25 | #20

    @Peterdog
    Hola.
    Básicamente lo que te falta es pagar la licencia de Apple para obtener una firma digital y poder con ella firmar las aplicaciones. En otro caso no podrás ejecutarlas.

    Revisa este link, aquí se explica bastante bien:
    http://www.clubdelphi.com/foros/showthread.php?t=83934

    La dirección para obtener lo necesario es esta:
    https://developer.apple.com/programs/

    Un saludo.

  21. Pedro-Juan
    jueves, 17 de agosto de 2023 a las 11:17 | #21

    Hola Neftalí,

    Estoy valorando la posibilidad de comprarme un Mac de sobremesa (dejar Windows totalmente).

    Pero antes tengo que asegurarme de la compatibilidad con los programas que utilizo, al menos los imprescindibles, que se puedan instalar en Mac y que funcionen correctamente.

    En este caso Delphi (D10.2 Tokio). ¿Podrías decirme si se puede instalar? ¿Si funciona correctamente? Y, en su caso, darme algún enlace para informarme?

    No se trata de desarrollar desde Win para Mac, sino de desarrollar desde Mac para Mac con Delphi.

    Comentario: un conocido me dijo hace varios meses «cuando lleves dos días con mac, no querrás volver a Windows» y lo he ido madurando…

    Muchas gracias y un saludo.

  22. Francisco
    miércoles, 18 de octubre de 2023 a las 13:09 | #22

    @Pedro-Juan
    Hola Pedro no hay Delphi que puedas instalar en la mac. a no ser que dentro le instales una VM con Windows.

  1. Sin trackbacks aún.