![]() |
Error al ejecutar aplicación en MacBook
Hola a tod@s.
Casi que debería haber titulado el post como "Mis peripecias con Delphi XE2 + Firemonkey + XCode y la madre que los parió..." Os cuento: Estoy desarrollando una aplicación Firemonkey con la idea de que funcione en un iPad. Para ello dispongo de Rad Studio XE2 (con la última actualización Update 4 HotFix 1) y de un MacBook Pro (de segunda mano comprado en USA) con OS X 10.6.8 (Snow Leopard) y Xcode 3.2.6. Asigno el perfil remoto en Delphi XE2 para la plataforma OSX para enviarlo al MacBook y va perfecto, se muestran las fichas de los clientes (de una BD Sqlite usando un driver dbexpress para sqlite), puedo hacer pedidos, y todo para lo que está pensada la aplicación, pero si ejecuto directamente el App que Delphi XE2 deja en el MacBook, lo primero que me aparece es un mensaje en una ventana indicando el error "Exception in safecall method", pulso OK y me aparece mi formulario principal. En cuanto pulso cualquier otro botón, da igual si tiene evento OnClick o no, me vuelve a salir la ventana con el error anterior y pulsando repetidas veces el botón OK, se cierra el programa. También he intentado compilar el proyecto con XCode, preparándolo con el ejecutable dpr2xcode.exe, y me sale el error: Free Pascal Compiler version 2.6.0 [2012/08/29] for i386 Copyright (c) 1993-2011 by Florian Klaempfl and others Target OS: Darwin/iPhoneSim for i386 Compiling /Users/User/Documents/DelphiXE2/../iPADTest.pas Fatal: Can't open file "iPADTest.pas" Fatal: Compilation aborted Command /bin/sh failed with exit code 1 Bien, pues revisando el fichero .sh que (creo que) genera Delphi en el Mac, veo lo siguiente: -XR$SDKROOT -FD$PLATFORM_DEVELOPER_BIN_DIR "$PROJECT_DIR/../$PROJECT.pas" y pienso ¿por qué se pone /../?, y me voy a la opción del menú Xcode "Project / New Build Phase / New Run Script Build Phase", y copio y pego el contenido del fichero .sh modificando "$PROJECT_DIR/../$PROJECT.pas" por "$PROJECT_DIR/$PROJECT.pas", y ahora me salen un montón de mensajes de compilación, indicando que compila todas los .pas de firemonkey... -casi me caigo de la silla de la emoción- pero al final dió otro error... "Compiling Principal.pas" "Principal.pas(6,9) Error: Duplicate identifier "SYSTEM"" y pienso: -lo mismo es que hay que quitarle System. al código fuente en los uses- lo corrijo eliminando System. de ese fichero .pas y luego dió otro error... "Compiling ListaClientes.pas" "Fatal: Can't find unit FMX used by unit ListaClientes" joder... -pienso yo- ahora no me encuentra la unit FMX... un momento, ¿la unit FMX?, pero si he visto como compilaba los pas de Firemonkey !!! Pues, si, los compila, pero se llaman FMX_Types.pas, FMX_Colors.pas, etc. En principio si sustituyo FMX. por FMX_ (añadiendo la directiva de compilación {$IFDEF FPC} en cada caso, debería compilar el proyecto con el XCode, pero ¿qué pasa con las demás units como Data.DB, Data.Bind.Scope, etc.? Se agradece cualquier comentario/experiencia al respecto. |
Buscando en google, he visto más gente que le pasa lo mismo:
http://community.freepascal.org:8080...forum_id=24111 https://forums.embarcadero.com/messa...ssageID=460283 |
Pues resulta que para XCode sólo existen los .pas de Firemonkey, pero de dbexpress, nada de nada.
Así que si quieres crear una aplicación para iPad con Delphi XE2 + FireMonkey, puedes olvidarte de usar: - dbexpress - livebindings (no estoy seguro al 100%) - DataSnap (no estoy seguro al 100%) y de cualquier otro componente que no esté disponible para Free Pascal. Voy a tener que hacer toda la presentación de los datos "a mano", creando una instancia de la clase "TSQLite" (definida en SQLite3db.pas de Free Pascal) y realizar la carga de los datos (sentencias SELECT) tal que así:
Ejemplo: http://www.youtube.com/watch?v=77HYR...feature=relmfu PD:Espero que esto oriente a todo aquel que tenga pensado hacer aplicaciones para iPad/iPhone con Delphi XE2 + FireMonkey + SQLIte |
La franja horaria es GMT +2. Ahora son las 18:46:46. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi