(Appcelerator) Módulos externos, Titanium SDK 2.1.3 (RC2) y SystemExit: 65

29 Sep 2012


En un proyecto interno, estábamos utilizando dos módulos externos de Appcelerator, una descargada desde el Market y otra no. Al tratar de correr nuestra aplicación utilizando el RC2 del Titanium SDK 2.1.3 con XCode 4.5 y el iOS 6 nos percatamos que los módulos no eran compatibles. Leyendo los release notes del 2.1.3 nos percatamos de algo interesante:

The ARMv6 architecture is no longer supported in iOS 6. Starting in Release 2.1.3, ARMv6 is not targeted when building for the iOS 6 SDK, or if the min iOS version is set to 4.3 or above.

Esto, nos traía como resultado un error similar al siguiente: Ambos módulos externos para iOS estaban compilados utilizando ARMv6, por lo que era necesario recompilarlos utilizando ARMv7 como arquitectura. Buscando un poco, encontramos ambos modulos con su código liberado en Github (wohoo), por lo que la solución era sencilla: descargar el proyecto, abrirlo en XCode, cambiarle la arquitectura para que utilizara ARMv7, recompilar el módulo con Titanium y reemplazarlo. Tomemos como ejemplo el módulo de Twitter par iOS 5, los pasos son simples: Descargamos el código fuente, yo descargué el Zip. Descomprimimos y vamos a la carpeta con los archivos. Abrimos esta carpeta como un proyecto en XCode. Bajo “Architectures” seleccionamos “Standard (armv7, armv7s)”. Ejemplo. Salvamos y cerramos XCode. Luego, corremos ./build.py desde esa misma carpeta, tomando en consideración: Que quizás necesitemos editar el archivo titanium.xcconfig con la siguiente información:TITANIUM_SDK_VERSION = 2.1.3.v20120927181611 (o nuestro SDK)TITANIUM_SDK = ~/Library/Application Support/Titanium/mobilesdk/osx/$(TITANIUM_SDK_VERSION)  Si es primera vez que compilas un módulo, quizás te pide la librería de Python “markdown2”. Lo puedes instalar con pip install markdown2. Otras instrucciones e información de como compilar un módulo. Una vez compilado, se te generará un archivo “zip”. Este archivo lo descomprimes en ~/Library/Application Support/Titanium/modules/iphone/de.marcelpociot.twitter ¡Listo!


Demóstenes García G.

Ingeniero Electrónico con experiencia en Ingeniería y Desarrollo de Software. Agilista, interesado en Analítica y Ciencia de Datos. Co-fundador en Pixmat, CIO en IFARHU. Twitter.