Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. iOS

iOS de Cero con Swift: Cómo probar un aplicación en un dispositivo de iOS

by
Difficulty:BeginnerLength:LongLanguages:
This post is part of a series called iOS From Scratch With Swift.
iOS From Scratch With Swift: Setting Up the Development Environment
iOS From Scratch With Swift: Creating Your First iOS Application

Spanish (Español) translation by Carlos Saldaña Garcia (you can also view the original English article)

El aprovisionamiento de una aplicación para la prueba en un dispositivo físico o para la distribución de la App Store puede ser una pesadilla para los principiantes. Aunque cada desarrollador de iOS tiene que hacer frente a este obstáculo en algún momento. En este artículo, te doy una buena explicación de cómo 'provisionar' una aplicación para la prueba en un dispositivo físico.

Este tutorial cubre dos escenarios:

  • realizar el deploy de una aplicación con un ID de Apple gratis
  • realizar el deploy de una aplicación como miembro del programa de desarrolladores de Apple de paga

Introducción

En el 2015, Apple renovó su oferta para los desarrolladores. Son dos cambios en particular los que vale la pena señalar.

En el pasado, Apple tenía programas separados para OS X, iOS y el desarrollo de Safari. Esto ya no es el caso. Con el lanzamiento de watchOS y tvOS, Apple combinó sus programas de desarrollo existentes en un solo programa, el Programa de Desarrolladores de Apple.

Esto significa que ya no necesitas inscribirse en varios programas si quieres desarrollar para iOS y OS X. Si te inscribes en el programa de desarrolladores de Apple,  podrás desarrollar para OS X, iOS, watchOS, tvOS y Safari.

Otro cambio significativo se refiere a la oferta de desarrollador gratuito de Apple. En el pasado, era posible crear una cuenta de desarrollador gratuita. Con esa cuenta, sin embargo, no se podían correr aplicaciones en un dispositivo físico.

Ahora se ha levantado esta restricción. Cualquier persona con un ID de Apple puede empezar a desarrollar para plataformas de Apple y puede correr aplicaciones en dispositivos físicos. Esto es muy bueno para cualquier persona interesada en el desarrollo en una de las plataformas de Apple.

Si vas a publicar una aplicación a una de las tiendas de aplicaciones de Apple, necesitas inscribirse en el programa de desarrolladores de Apple de paga. Esto es algo que ya hablamos en el articulo anterior de esta misma serie.

1. Apple ID

Hacer el deploy de (correr) una aplicación a un dispositivo físico con un ID de Apple es sencillo. Pero ten en cuenta que los tipos de aplicaciones que puedes correr con un ID de Apple gratis son limitados en cierta medida. Te recomiendo que eches un vistazo al Overview de Apple si quieres saber más sobre lo que es posible y qué no.

Vamos a ver qué pasos son necesarios para ejecutar una aplicación de iOS en un iPhone o iPad con un ID de Apple gratis. Si no tienes un ID de Apple, te sugiero que crees uno en el sitio web de Apple antes de continuar con este tutorial. Sólo toma unos minutos para crear uno.

Paso 1: Registrarse como desarrollador

Visite el sitio web de desarrolladores de Apple y haga clic en Member Center en la parte superior. Después de firmar con tu ID de Apple, se te pedirá si estas de acuerdo con el Apple's Developer Agreement (Acuerdo de Desarrolladores de Apple). Lea el contrato, marca la casilla si estas de acuerdo y has clic en Submit. Ahora eres un desarrollador registrado de Apple.

Paso 2: Crear un proyecto

Ejecuta Xcode y crea un proyecto como lo hicimos en el tutorial anterior. Elige la plantilla de Single View Application y configura el proyecto como se muestra a continuación. Dile a Xcode donde deseas almacenar los archivos del proyecto y has clic en Create.

Configure the Project

Paso 3: Agregar una cuenta

Después de crear el proyecto, Xcode muestra la pestaña General del único target (contiene información del tipo de app y en que dispositivo se va a ejecutar en el futuro) del proyecto. En la sección de Identity, Xcode nos advierte que no podemos ejecutar la aplicación en un dispositivo. La advertencia en la parte inferior de la sección de Identity nos dice que Xcode es incapaz de encontrar un 'code signing identity' (firma del desarrollador) y que Team está establecido en None (tampoco existe un equipo al que pertenezca esa identidad faltante). Puedes solucionar fácilmente este problema firmando (iniciando sesión) con tu ID de Apple.

No Code Signing Identities Found

Selecciona Xcode de la barra de menú y seleccione Preferences... para abrir la ventana de preferencias de Xcode.

Open Xcodes Preferences

Si abres la pestaña de Accounts, podrás ver que las cuentas no aparecen todavía.

No Accounts Listed

Haga clic en el botón con el símbolo de añadir en la parte inferior izquierda y seleccione Add Apple ID... en la lista de opciones.

Add Apple ID

Ingrese su ID de Apple y su contraseña en el cuadro de diálogo y haga clic en Add. Si esto no te funciona, asegurate primero de que estás registrado como desarrollador de Apple como te mostré antes. Si agregaste tu ID de Apple de manera exitosa, entonces debería de aparecer ahora en la lista de cuentas de la izquierda.

Adding an Apple ID

Paso 4: Actualizar equipo

Cerrar la ventana de preferencias y regresa a la pestaña de General del target del proyecto. En la sección de Identity, establece el Team (equipo) en la cuenta que agregó hace un momento. A pesar de que ya ha especificado un equipo, Xcode todavía muestra una advertencia.

No Matching Provisioning Profiles Found

Espera a un segundo ... Por qué no tratamos de dar clic en el botón Fix Issue. Hay una razón para que este allí. ¿Verdad? Si haces clic en el botón Fix Issue, Xcode se encargará de los detalles complicados para asegurarse de que puedes ejecutar la aplicación en un dispositivo físico.

Paso 5: Confía en el Developer

Si intentas ejecutar la aplicación en tu dispositivo, entonces aun tendrás un problema. ¿También puedes ver el siguiente cuadro de diálogo?

Unable to Launch Application

Xcode nos muestra un mensaje de error bastante críptico y me tomó unos minutos para averiguar qué estaba pasando. Si ves tu dispositivo, entonces verás que la aplicación ya está instalada. Si tocas el icono para ejecutarla, verás cuál es el problema. El sistema operativo nos dice que la aplicación NO es de un desarrollador de confianza.

Untrusted Developer

Afortunadamente, el sistema operativo también nos da una pista. Abra la aplicación de Ajustes/Settings y navega hacia General > Profiles. Seleccione el profile (perfil) con tu ID de Apple y da tap  sobre Trust "<Apple ID>". Elija la opción Trust en el cuadro de diálogo que aparece al terminar el proceso. Ahora deberías de ser capaz de ejecutar la aplicación en tu dispositivo.

Choose the Profile With Your Apple ID

Recuerda que necesitas volver a confiar la identidad de desarrollador, si eliminas todas las aplicaciones de esa identidad en particular.

2. Programa de Desarrolladores de Apple

Si has elegido a inscribirse en el Programa de Desarrolladores de Apple de paga, los pasos que debes tomar para provisionar una aplicación son diferentes. Lo bueno es que las restricciones impuestas las cuentas de desarrollador gratis no existen para miembros del Programa de Desarrollador de Apple (sobre el tipo de apps que se pueden ejecutar). Lo primero que tienes que hacer es crear un certificado de desarrollo.

Paso 1: Crear una Petición para Firmar el Certificado

Un certificado es un documento electrónico que vincula tu identidad digital con otra información, como su nombre, correo electrónico e información de tu organización. Un certificado de desarrollo consiste en una clave privada secreta y una clave pública compartida. Si estás familiarizado con los certificados SSL para asegurar sitios web, entonces probablemente ya sabes lo que es un certificado y cómo funciona.

Xcode utiliza la clave privada del certificado para firmar criptográficamente tu binario. Para obtener un certificado de desarrollo, primero necesitas crear un certificate signing request o CRS.

Puedes crear un CSR usando la aplicación Acceso a Llaveros (Keychain Access), que se puede encontrar en  Aplicaciones > Utilidades. Abra el menú Acceso a Llaveros, selecciona Asistente para Certificados y seleccione Solicitar un Certificado de una Autoridad de Certificación...

Llena el formulario ingresando tu nombre y la dirección de correo electrónico con la que firmaste previamente para el Programa de Desarrolladores de Apple. Deja en blanco la dirección de correo de CA y selecciona la opción de guardar en disco para guardar el archivo de petición de firma en tu máquina. Deja sin marcar la opción de especificar información de par de claves.

Create a Certificate Signing Request

Has clic en Continuar, especifica una ubicación para guardar la CSR y da clic en Guardar. Ve a la ubicación que especificaste para asegurarse de que el archivo CSR se generó. En Acceso a Llavero, bajo la categoría de Llaves, podrás ver que las claves privadas y públicas se han añadido a su llavero de inicio de sesión.

Create the PublicPrivate Key Pair

Paso 2: Crear un Certificado de Desarrollo

Abre un navegador (Firefox, Chrome, etc) y ve a sitio web de desarrolladores de Apple. Da clic en Member Center la parte superior, inicia sesión con tu cuenta de desarrollador y elije Certificates, Identifiers & Profiles.

Certificates Identifiers Profiles

En la siguiente página, seleccione Certificates en la sección de iOS Apps.

Certificates iOS Apps

Haga clic en el botón "más" en la parte superior derecha para añadir un nuevo certificado. La lista de opciones, seleccione iOS App Development. Este es el tipo de certificado que nos interesa. Da clic en Continue en la parte inferior.

Choose the Certificate Type

La página siguiente describe los pasos para crear un CSR. Puesto que ya tenemos un CSR puedes hacer clic en Continue en la parte inferior.

Creating a Certificate Signing Request

Sube el CSR y has clic en Generate en la parte inferior.

Uploading the Certificate Signing Request

Eso es todo. Haga clic en el botón Download para descargar el certificado de desarrollo. Después de descargar el certificado de desarrollo, has doble clic para instalarlo en Acceso a Llaveros. Asegúrese de que respaldar el certificado, no querrías perderlo.

Downloading the Certificate

Si Acceso a Llaveros te muestra una alerta para que agregue el certificado al llavero de inicio de sesión, entonces da clic en Agregar.

Adding the Certificate to the Login Keychain

En Acceso a Llaveros, selecciona Mis Certificados de la izquierda y localiza el certificado agregado para asegurarte de que ha instalado correctamente.

Installing the Certificate

Paso 3: Agregar un Dispositivo

No se puede ejecutar una aplicación de iOS en un dispositivo cualquiera. Debes especificar qué dispositivos pueden ejecutar tu aplicación de iOS marcando uno o mas dispositivos iOS en el portal del desarrollador.

Ve a la sección Certificates, Identifiers & Profiles del portal, seleccione la pestaña Devices en la sección iOS Apps y has clic en el botón de "más" en la parte superior derecha. Para registrar un dispositivo, introduzce un nombre para el mismo y su UDID (Identificador Único del Dispositivo). El UDID es un identificador que identifica un dispositivo iOS de los demás. Ten en cuenta que el UDID no es lo mismo que el número de serie del dispositivo.

Registering a Device

Puedes encontrar el UDID conectando tu dispositivo a la Mac, iniciar Xcode y elegir Devices desde el menú Window. La cadena alfanumérica de cuarenta caracteres junto al identificador es UDID que del dispositivo.

Locating the Device UDID

Paso 4: Crear un ID de Aplicación

Un App ID es un identificador que identifica de manera única una aplicación en iOS. Es muy parecido al UDID del dispositivo en el sentido que identifica la nueva app. El App ID es utilizado por el sistema operativo por razones de seguridad y es un componente esencial de Notificaciones Push de Apple y servicios iCloud, entre otros.

El ID de una aplicación consiste en el identificador de paquete de la aplicación con un prefijo único de diez caracteres generado por Apple. ¿Qué es un identificador de paquete? Recuerda el primer proyecto creado en el tutorial anterior. A pesar que no hablé a detalle del identificador de paquete, especificaste implícitamente un identificador de paquete para tu proyecto al dar un nombre a tu aplicación y especificando un identificador de la organización.

De forma predeterminada, el identificador de paquete es nombre de tu aplicación con el identificador de la organización como prefijo. Puedes cambiar el identificador de paquete a lo que quieras. Se recomienda usar la notación de dominio inverso, por ejemplo, com.tutsplus.my-primera-aplicación. El ID de la aplicación completa sería xxxxxxxxxx.com.tutsplus.my-primera-aplicación.

Para crear un nuevo ID de aplicación en el portal de desarrolladores, ve a la sección Certificates, Identifiers & Profiles, has clic sobre iOS Apps, y selecciona App IDs del menú de la izquierda. Para crear un nuevo  App ID, has clic en el botón 'más' en la parte superior derecha.

Comienza dando un nombre descriptivo a tu App ID para que lo puedas encontrar más tarde. Dejar sin tocar el prefijo del App ID. En la sección sufijo del App ID (App ID suffix), introduce tu identificador de paquete(bundle id). Asegurate de que ingresaste a la sección denominada Explicit App ID (identificación explícita de la aplicación).

Create an App ID

También puedes optar por un Wildcard App ID y reemplazar el nombre de la aplicación en el identificador de paquete con un asterisco, por ejemplo, com.tutsplus.*. Esto es útil si deseas crear un conjunto de aplicaciones que necesitan compartir acceso a llaveros o que no requieren acceso a llaveros. El caracter de asterisco o wildcard(comodín) debe ser el último componente del identificador de paquete.

Paso 5: Crear un Provisioning Profile (Perfil de Aprovisionamiento)

Con el certificado de desarrollo y el ID de la aplicación en su lugar, es hora de crear un provisioning profile para tu aplicación. Antes de empezar, podría ser útil explicar lo que es un provisioning profile, ya que es algo que confunde a muchos desarrolladores de iOS nuevos en la plataforma.

La documentación de Apple define un provisioning profile como "un conjunto de elementos que atan de manera única a los desarrolladores y sus dispositivos con un Equipo de Desarrollo de iOS autorizado y permite que un dispositivo se utilice para pruebas". En otras palabras, un provisioning profile contiene la información que necesita el sistema operativo para comprobar si una aplicación se puede ejecutar en un dispositivo específico. Esto implica que el provisioning profile debe estar instalado en cada dispositivo en el que vayamos a instalar la aplicación.

Vamos a crear un provisioning prifle para tu aplicación. En la sección Certificates, Identifiers & Profiles del portal de desarrollo, selecciona la pestaña Provisioning Profiles en la sección de iOS Apps. Has clic en el botón 'más' en la parte superior derecha para crear un nuevo provisioning profile. Seleccione iOS App Development en la sección de Development y haga clic en Continue.

Create a Provisioning Profile

En el siguiente paso, seleccione el App ID (ID de la aplicación) que creamos hace unos minutos y has clic en Continue.

Select the App ID

Seleccione el certificado de desarrollo de la lista de certificados para asociar el nuevo provisioning profile con el certificado correcto. Haga clic en Continue.

Select the Certificate

Ahora debes seleccionar los dispositivos que deseas enlazar con el provisioning profile. Recuerda que sólo estos dispositivos serán capaces de ejecutar la aplicación durante el desarrollo.

Select the Devices

Nombra el provisioning profile de manera descriptiva para que lo puedas encontrar fácilmente más tarde. Haga clic en Generate y descarga el provisioning profile en tu computadora. Haga doble clic en el provisioning profile para abrirlo con Xcode.

Generate the Provisioning Profile

Si deseas añadir más dispositivos a un perfil (provisioning profile) ya existente, puedes hacerlo editandolo en el portal de desarrollo. Todo lo que necesitas hacer es descargar el nuevo perfil e instalarlo en cada dispositivo que desees usar. En otras palabras, no necesita crear un nuevo perfil si lo que quieres hacer es agregar o eliminar dispositivos.

Paso 6: Configura el Proyecto

Antes de poder ejecutar la aplicación en tu dispositivo, necesitas actualizar la configuración del target en tu proyecto de Xcode.

Abre el proyecto que creaste en el tutorial anterior y selecciona el proyecto desde el Project Navigator (el panel de la izquierda). Seleccione My First Application en la sección de Targets y abre Build Settings en la parte superior.

Open the Target Build Settings

No te sientas abrumad@ por los numerosos ajustes de compilación. Desplazate por la lista y busca la sección de Code Signing (firma de código). En esta sección, busca el apartado de Code Signing Identity (identidad de firma de código) y establece la configuración de Debug(depuración) para que coincida con iOS Developer. Generalmente se encuentra bajo el título Automatic.

Set the Code Signing Identity

Paso 7: Build & Run

Si has seguido los pasos anteriores, ahora debes ser capaz de generar (build) y ejecutar (run) la aplicación en tu dispositivo. Antes de ejecutar la aplicación, asegúrate de que estableciste correctamente el esquema (squeme) del target y destino como se muestra a continuación.

Set Scheme and Destination

3. Agregar una Cuenta de Desarrollador

Con respecto al aprovisionamiento de la aplicación, Xcode puede hacer el trabajo pesado por ti. Para que esto funcione, necesitas agregar tu cuenta de desarrollador en Xcode. Para agregar una cuenta de desarrollador selecciona Preferences... en el menú Xcode y abriendo la pestaña de Accounts.

Open Xcode Preferences
No Accounts Configured

Haga clic en el botón 'más' en la parte inferior izquierda y seleccione Add Apple ID... en la lista de opciones. Introduce tus credenciales y has clic en Add.

Add Apple ID

Al añadir tu cuenta de desarrollador a Xcode, este podrá comunicarse con el portal de desarrolladores en tu nombre. Esto hace algunas tareas mucho más fáciles.

Conclusión

La creación de perfiles (provisioning profiles), gestión de certificados, aprovisionamiento, App IDs y dispositivos de prueba puede ser una tarea retadora y a menudo lo es para la mayoría de los desarrolladores. Espero que este artículo te haya dado una base sólida.

No dudes en leer este artículo unas cuantas veces para realmente entender cómo encajan las diferentes piezas. Eso hará mas fácil solucionar problemas relacionados con el aprovisionamiento y puedo garantizarte que te encontrarás con tales problemas en algún otro momento en tu carrera de desarrollo de iOS.

Si tienes alguna pregunta o comentario, puedes dejarlas en los comentarios abajo o acercarse a mí en Twitter.

¡Sé el primero en conocer las nuevas traducciones–sigue @tutsplus_es en Twitter!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.