Compilar Xcode en Genexus para iOS duele

0 0

La queja acostumbrada

Y bueno, si bien es cierto con Genexus la vida se facilita pues nos permite crear aplicaciones multiplataforma o mejor dicho para multiples plataformas. Tambien es cierto que hay ciertos detalles que nos decabezan. Supongo que para quienes pagan el mantenimiento anual estos detalles no son tan dolorosos. Y si, es que aunque se compre la licencia de GX hay que pagar una cuota de mantenimiento y soporte. Esto está bien (de otra forma ¿qué comeríamos los desarrolladores de software) lo que no me parece bien es que esa información esté tan escondida. La información es conocimiento y el conocimiento no debería estar tan escondido que sea obligatorio pagar por él. Por otro lado algunas cosas vienen siendo casi bugs de la herramienta y entonces: si la herramienta tiene bugs lo normal debería ser que fueran públicos o al menos de fácil acceso. Y para no se malcriados, mejor decimos que Compilar Xcode en Genexus para iOS duele. Por aqui podés ver otra queja justificada –> Migracion de Version GAM

Pues para dejar la quejadera vamos, como dijo el dermatólogo, al grano. Vamos a ver algunos líos de Xcode y Swift en Genexus para compilar en iOS.

Resulta que, debido a la constante evolución tecnológica ésta provoca tambien que los requisitos para la Apps sean cambiados constantemente y en plataformas como la de Apple, esto es un «pain in the ass».

¿Y por qué nos metimos en este rollo?

En Zelva IT estamos en este momento trabajando en la creación de dos Apps, una para marketing de Daradu y otra para agregar un nuevo servicio a ZelvaPOS. De eso estaremos hablando próximamente. Dado que tenemos esos proyectos, decidimos que la App de BaleadaGeek.com nos serviría de laboratorio para implementar las nuevas versiones de GX (en este momento GX17U6), Apple (Xcode 13.1, podes ver la información aquí) y Android. Nos propusimos esa tarea y claro, lo mas fácil es hacerlo para Android (bendito seas Google que nos permites crear y publicar apps sin tanta paja como Apple). De hecho, la version Android ya está disponible aqui (ya sabés que hacer, dale click a la palabra aquí y descargala en tu cel).

Llegó la Hora del Sufrimiento

  • Pues bien, procedimos a compilar la App de BaleadaGeek (n una mac, tiene que ser mac), seguimos las instruciones del wiki de Genexus:
    • 1.- Requerimientos
    • 2.- Revisamos de Nuevo todos los pasos descritos para la Plataforma Apple
    • 3.- Ejecutamos la compilación… y aqui empezaron los dolores del parto:

error: CompileSwift normal x86_64 /Users/zelvaideas/Documents/Projects/BaleadaGeek/Produccion/BaleadaGeekInicio/Classes/GXEOiOSPermissionsOptionals.swi

Enmedio de aqui va un relajo de instrucciones que no vale la pena copiar

ckxacxcblilwgkbqhttxyprbwyqy/Build/Intermediates.noindex/BaleadaGeekInicio.build/Debug-iphonesi
error: :0: error: module compiled with Swift 5.5 cannot be imported by the Swift 5.5.2 compiler: /Users/zelvaideas/Library/GeneXus/GeneXus/17.0.154974_U6/iphonesimulator/GXFoundation.framework/Modules/GXFoundation.swiftmodule/i386-apple-ios-simulator.swiftmodule
Failed: iOS Compilation
Failed: Run With This Only

Enfoquémonos en este Clavo

Como dijimos antes, para estos detalles la documentación disponible en GX es insuficiente. Entonces, tocará empezar a parir como solventar este problema:

error: module compiled with Swift 5.5 cannot be imported by the Swift 5.5.2 compiler

Asi que empezamos con otra ardua labor de «guguleo» y encontramos este sitio, que vamos a usar y trataré de poner la «traducción libre» (esa palabrita le dá alergia a algunos, muy pocos afortunadamente) de los pasos utilizados.
1.- Verificar la version de Swift que estamos utilizando, esto lo hacemos con el comando:

$ swift --version

Y este es el resultado:

Consola de comandos iOS

¡Vaya rollo! Genexus me habla de una version 5.5 y resulta que la que está instalada es la 5.4… ¿y ahora?

Problemas locos, soluciones locas (o cuando ya estas harto de batear)

Vamos probar una opción mas radical. Resulta que yo había instalado la ultima version (hasta este momento) de Xcode, la 13.2.1. Segun la documentación de GX la sugerida es la 13.1. Vamos a desinstalar la que tenemos y probaremos con la version exacta que sugiere la documentación.

Y como estos malditos siempre le hacen más difícil el trabajo a uno, hay que buscar como bajar esa versión asi que despues de la respectiva bateada, tuvimos que bajar Xcode 13.1 desde este link, recordá que lo estamos bajando directamente el la mac, esto siempre es tardado asi que toca esperar

Bajar versiones anteriores de Xcode, en nuestro caso 13.1

Por mientras baja, nos pusimos investigar como desinstalar la version actual y encontramos que para las últimas versiones de Xcode, basta con mandarla a Trash, probamos esto:

Usar la Opción Move to Trash en Applications de tu Mac

¡Por fin descargó la versión 13.1! Pero como está comprimido, pues lo descomprimimos para instalarla.

Proceso de descompresión del Archivo de Xcode 13.1

Aqui toca seguir esperando…. esto lo que más desespera, cada paso es superlento. Lo peor es que ni sabés si va a funcionar!

Vamos a Compilar Xcode en Genexus para iOS: Terminó la espera

Bueno, por fin se descomprimió, ahora copiá o mové el archivo a la carpeta de aplicaciones para ejecutarlo

Pero antes de mandar a compilar, sigamos las instrucciones que mencionamos anteriormente:

Instalación de CooaPods

Ojo con las mayúsculas, el verdadero comando es:

sudo gem install cocoapods

Limpiemos las referencias de Compilaciones anteriores

Luego con esta parte para limpiar cualquier otra referencia:

  • Ejecutar Xcode, usualmente, la primera vez que se ejecuta, se instalan componentes adicionales
  • Revisar que Xcode -> Preferences -> Locations -> Derived Data -> Advanced -> Build Locations no esté configurada como «Legacy»
Compilar Xcode en Genexus para iOS
Compilar Xcode en Genexus para iOS

  • Para Kbs compiladas con una version previa de Genexus (o Xcode), antes de volver a compilar se debe hacer lo siguiente:
    • Eliminar el contenido de ~/Library/Developer/Xcode/DerivedData (para cada usuario de la Mac que va a compilar código)
Compilar Xcode en Genexus para iOS
  • Eliminar el folder «build» que está en: ~/Documents/Projects/<Nombre_de_KB/<Nombre_ambiente>/<NombreMaindeApp>

No olvidés vaciar el Trash!!

Por fin!!!

Pues ya.. por fin compiló. Peeeerooo! esto de Xcode y Swift en Genexus para compilar en iOS es una mamada!

Todavia no cantemos victoria, que aunque la pantalla que muestro a continuación significa un placer casi sexual, aun no sabemos si podremos publicar la app en la Appstore.

No me gusta ser mala onda, pero asi es la vida. Asi que en el próximo capítulo les muestro si tuve que perder otro día solo para ver la app de BaleadaGeek en la Appstore.

Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Entrada anterior OK Google, ya es suficiente. ¿Cómo hago para que el sitio web aparezca en las búsquedas?
Entrada siguiente Dice el alcalde de Tegus que pagen confiadamente, será?