martes, 17 de enero de 2012

Probar aplicaciones en un dispositivo iOS

O como comenzar a programar sin pasar por el AppStore

¿Cuál es el problema?

Este artículo tiene la intención única de explicar una posibilidad “desconocida” al menos para mí relacionada con el desarrollo de aplicaciones para dispositivos iOS. Lo vi en varios sitios que no voy a indicar aquí por si acaso.

Las versiones utilizadas en esos artículos eran las siguientes:

Mac OS X 10.6.6
Xcode 3.2.5

 

En principio, cuando desarrollamos una aplicación para dispositivos iOS, la única opción “gratuita” que tenemos es probar dicha aplicación en el simulador integrado en el sistema. Esto es más que suficiente en la mayoría de los casos, pero existen situaciones en las que se queda un poco corto (por ejemplo, interactuar con el GPS)

En condiciones normales, cuando comenzamos el desarrollo de este tipo de aplicaciones, tenemos que ‘comprar’ una licencia a Apple, que nos puede dar derecho tanto a publicar nuestra aplicación en el AppStore como a configurar hasta 100 (me suena que eran 100) dispositivos ‘autorizados’ para realizar pruebas. ¿Qué sucede si no tenemos esa licencia?

La licencia es una suscripción anual y puede ser que únicamente queramos realizar pruebas antes de comenzar el desarrollo ‘en serio’, pero necesitando poder probar ‘en vivo’ las aplicaciones.

¡OJO! Reconozco que no tengo ni idea de si este procedimiento es legal o no, cada cual que haga lo que quiera, yo sólo he visto que existe esta posibilidad y quería recogerla en el lenguaje de Cervantes. Si alguien me advierte de que esto es ilegal, lo elimino y aquí paz y después gloria, que aquí estamos para aprender!

Proceso

Lo primero que se indica es que el dispositivo que queremos utilizar para realizar pruebas tiene que tener hecho el proceso de Jailbreak. Esto ya puede suponer un problema, ya que en función de la versión de iOS del dispositivo, es posible que no se pueda hacer jailbreak. Además del Jailbreak, es dispositivo por lo visto necesita tener instalada la aplicación “AppSync”

Una vez que cumplimos con esos requisitos, arrancamos nuestro MAC

Al turrón

Mediante el “Acceso a Llaveros” generamos un nuevo certificado:

  1. Acceso a Llaveros
  2. Asistente para certificados
  3. Crear un certificado
  4. El certificado a crear tiene que ser de tipo “Raíz autofirmada”.

Una vez generado el certificado, tenemos que realizar una modificación a un archivo de configuración de Xcode:

  1. Finder
  2. Developer
  3. Platforms

Una vez en la carpeta “Platforms” elegimos con qué plataforma de las disponibles queremos trabajar (por ejemplo “iPhoneOS.platform”

¡OJO! En los artículos que he visto no mencionaban si alguna de las plataformas es incompatible con este método, supongo que si no funciona habrá que googlear un poco.

Editamos el archivo “Info.plist” (abridlo mejor con “TextEdit” y, lógicamente, guardad antes una copia del archivo)

Localizamos una de las secciones <dict>, concretamente la que comienza con la línea:

<key>ARCHS</key>

A continuación de las líneas:

<key>PLIST_FILE_OUTPUT_FORMAT</key>

<string>binary</string>

Introducimos las siguientes líneas:

<key>PROVISIONING_PROFILE_ALLOWED</key>

<string>NO</string>

<key>PROVISIONING_PROFILE_REQUIRED</key>

<string>NO</string>

A continuación, ejecutamos Xcode y abrimos el proyecto que queremos depurar.

¡OJO! Estos pasos hay que repetirlos en todos los proyectos que queramos depurar en un dispositivo físico, recordad que por regla general es suficiente con el simulador integrado.

  1. Menú Project
  2. Edit Project Settings
  3. Pestaña Build
  4. Sección Code Signing

En las propiedades “Code Signing Identity” y “Any iOS” establecemos el certificado local que creamos en su momento para montar todo este tinglado.

Y para acabar, en el desplegable del proyecto, elegimos el dispositivo en lugar del simulador y a jugar!!!

Consideraciones finales

Otra vez quiero indicar que desconozco si esta práctica es 100% legal, en principio realizar un Jailbreak a un dispositivo iOS es legal, aunque se pierde la garantía del aparato. El resto de pasos son cambios a archivos de configuración, con lo que entiendo que no debería suponer ningún problema.

Seguiré vigilando el tema y en el momento en el que tenga sospechas de la legalidad del mismo, actualizaré el artículo en consecuencia.

Ahora sí, para terminar, una ‘pequeña’ justificación, no he podido / querido utilizar capturas de pantalla, ya que yo no he probado el procedimiento y tampoco quería utilizar capturas de terceros.

No hay comentarios: