Archivo

Compilar app iOS en un dispositivo sin licencia de Apple

Por fin ha llegado el día en que se puede compilar una aplicación de iOS en un dispositivo sin tener ninguna licencia ni certificados. Algo que para los desarrolladores freelance está genial y llevábamos esperando mucho tiempo, ya que estábamos limitados a compilar siempre en el simulador y sin poder probar muchas funcionalidades en un dispositivo real.

A partir del Xcode 7, ya se puede compilar en un dispositivo sin necesidad de la licencia. Es así de sencillo:

1. Necesitamos un Apple ID, pero como tenemos un dispositivo iOS, seguramente tenemos usuario de Apple y no habrá problema (también se puede crear más adelante).

2. También necesitamos un ordenador Mac con el Xcode 7 o posterior instalado (imprescindible el Xcode 7 o posterior).

3. Abrimos nuestro proyecto de Xcode:

Si seleccionamos el Target de nuestra aplicación, en la parte de Firmar la aplicación, aparece que no tiene puesto ningún certificado para poder firmar la app.

4. Seleccionamos un Team, no tenemos ninguno disponible porque no tenemos licencia. Por lo que pulsamos en Add an Account:

5. Aquí ponemos un Apple ID que tengamos o también podemos crear uno primero:

6. Como se puede ver en la siguiente pantalla, automáticamente se nos crea un certificado para poder firmar la app y por tanto compilar en un dispositivo.

7. Tenemos que cambiar esto también en los Target de la aplicación que son de Test, y seleccionar el Personal Team nuevo que hemos añadido.

8. A continuación, seleccionamos nuestro dispositivo y compilamos (pulsamos el botón Play).

9. Al compilar la primera vez, nos saldrá la alerta que se puede ver en la siguiente imagen, que simplemente nos dice que tenemos que darle a Confiar en ese Apple ID, desde nuestro dispositivo:

10. En nuestro dispositivo, vamos a Ajustes –> General y pulsamos donde pone Gestión de dispositivos:

11. Después pulsamos en nuestro Apple ID que aparecerá como se muestra en la siguiente pantalla:

12. Aparecerá la siguiente pantalla, pulsamos sobre Confiar en «nuestro Apple ID»

13. Nos sale la siguiente alerta para confirmar:

14. Y ya tendríamos la aplicación en nuestro dispositivo lista para ser probada!

Una vez tengamos ya agregado un Personal Team, entonces directamente desde que se crea el proyecto, se puede seleccionar el Personal Team creado anteriormente, y ya estaría todo configurado en el proyecto para compilar.

1. Creamos un proyecto nuevo y en Team, seleccionamos el Personal Team creado anteriormente con nuestro Apple ID.

2. Como podemos ver en los diferentes Targets, ya aparece seleccionado el certificado de la cuenta del Apple ID de nuestro Personal Team.

3. Por lo que no tenemos que modificar nada y ya podemos compilar en nuestro dispositivo sin  ningún problema.

 

Problema al firmar app: Este certificado proviene de un emisor no válido

Cuando vas a firmar con un certificado en Xcode y no te deja, te echas las manos a la cabeza ya que en el mundo Apple + firmas siempre es un poco infierno averiguar de donde viene el problema.

Lo normal es ver si te sale algún error del cual puedas identificar el problema, y si aún así no lo sacas, lo siguiente es mirar como loco por todos lados.

Lo mejor es mirar directamente en la aplicación Llavero (Keychain) del ordenador, ya que todo lo relacionado con firmas, certificados y demás, está reflejado en esa aplicación.

El problema es cuando entras en el llavero y ves que en la descripción del certificado que te da problemas para firmar el proyecto de Xcode, aparece lo siguiente: This certificate has an invalid issuer

Esto que significa, que el certificado procede de un emisor no válido. Esto ocurre porque el Apple Worldwide Developer Relations Certification Authority ha expirado.

ThisCertificatehasAnInvalidIssuer

Para solucionar este problema:

1. En la aplicación Llavero, pulsar en Visualización (View) y pulsar en «Mostrar los certificados expirados» («Show Expired Certificates»).

AppleWorldwideDeveloperRelationsCertificationAuthority

2. Mirar que tengamos seleccionado la categoría «Certificados» («Certificates») en la columna de la izquierda.

3. Eliminamos el Apple Worldwide Developer Relations Certification Authority que ha expirado.

AppleWorldwideDeveloperRelationsCertificationAuthority2

4. Descargamos el nuevo certificado del Apple Worldwide Developer Relations Certification Authority de este link https://developer.apple.com/certificationauthority/AppleWWDRCA.cer y pulsamos doble click sobre el certificado para instalarlo.

5. Se instalará directamente en el Llavero y ya podremos firmar y compilar la aplicación.

Programa para crear Asset Catalog para iOS automáticamente

¡Hola!

Una de las opciones nuevas que trajo consigo la versión 5 del Xcode, fue incluir los Asset Catalog para configurar todas las imágenes de los iconos de nuestra app y de las imágenes de los Splash.

No se si recordáis que antes teníamos que realizar la tediosa tarea de hacer las imágenes de los iconos y de los Splash, y además, tener que ir re-nombrando estas imágenes con nombres del tipo: icono.png y icono@2x.png. Los que iban con @2x servían para indicar que dispositivos con pantalla Retina podían presentar la imagen en alta resolución.

Apple decidió prescindir de esta nomenclatura y creó los Asset Catalog. En principio solucionan bastante toda la tarea que había que realizar anteriormente, pero igualmente necesitamos realizar todas las imágenes de iconos y de los Splash en el tamaño exacto de cada resolución de todos los dispositivos, lo cuál, viendo que cada vez Apple saca dispositivos con distintas resoluciones, es una tarea que nos lleva un ratito de nuestro tiempo.

Por ello, buscando si había algo que me ahorrase tiempo de mi vida, encontré un programa para Mac llamado Asset Catalog Creator.

Asset Catalog Creator

Con esta herramienta, basta con realizar la imagen de tu icono o splash en un buen tamaño y después lo tienes que arrastrar a esta herramienta. Automáticamente te genera el Asset Catalog. Finalmente hay que sustituir el archivo que ha generado por el que genera por defecto el Xcode. En el caso de que hayamos generado un Asset catalog para el icono de una aplicación en iOS, el programa habrá generado una carpeta llamada Media.xcassets, que dentro tiene otra carpeta llamada AppIcon.appiconset. Esta última carpeta es la que hay que reemplazar por la de nuestro proyecto de Xcode, que estará en la carpeta Assets.xcassets de la raíz de tu proyecto, como puedes ver en esta imagen:

assetcatalog

 

La versión gratuita sólo permite sacar el Asset Catalog del icono de tu app para iOS. La versión de pago incluye la posibilidad de generar el icono para: OS X, Image Set, iOS Launch y Watch.

Desde luego, es una magnífica herramienta que nos ahorra tiempo en el desarrollo y en el proceso de publicación.