Notificaciones Push iOS. Parte 1. Creación del Identificador y Certificados en el portal de desarrollador.

En esta primera parte vamos a explicar como crear el Identificador de aplicación, si aún no lo hemos hecho, y la creación de los Certificados Push que se usarán en el servidor para enviar las notificaciones a través de los APNs de Apple.

Lo primero de todo es acceder al portal de desarrollador

PortalDesarrollador

Lo primero sería crear el Identificador de la app si es nueva, si ya la tenemos creada podemos saltar este paso. Para ello pinchamos en “Identifiers”

CrearId

Pinchamos en el botón “+

DescripcionApp

Añadimos la descripción de la App

AppID

Seleccionamos “Explicit App ID” y en “Bundle ID” ponemos el identificador que vayamos a usar (o que ya hayamos usado) al crear la aplicación desde el CLI de cordova, ejemplo, “cordova create tutorialPush es.phonegap.tutorialpush tutorialPush”, pero ya lo veremos en la parte 2 del tutorial.

checkboxPush

Por último dentro del apartado “App Services” marcamos el checkbox de “Push Notifications”, pulsamos en “Continue”, comprobamos que está todo correcto y pulsamos en “Submit” y finalmente en “Done”.

En la pantalla de “Identifiers” nos debería aparecer el App ID de nuestra appAppIDLista

Pinchamos en él y se desplegarán todos los servicios de la app. Push Notifications aparece en amarillo como “Configurable”

ServiciosAppID

Pinchamos en “Edit” y bajamos a la sección “Push Notifications”. Veremos que hay 2 opciones, “Development SSL Certificate” y “Production SSL Certificate”. De momento vamos a crear uno de “Development” para las pruebas, ya que es el que funciona cuando instalas la app mediante el CLI o Xcode, pero en un futuro habrá que crear también uno de “Production”, que para probarlo tendremos que exportar la app con el certificado de distribución e instalándola desde Itunes o subiéndola a Itunes Connect e instalándola mediante Testflight. Pulsamos “Create Certificate…”.

PushConfigurable

Nos aparecerá una pantalla que nos explicará en inglés como crear un CSR (Certificate Signing Request). De momento pinchamos en “Continue” y lo voy a explicar en español por si alguno no se entera.

Tenemos que abrir la aplicación “Acceso a Llaveros” del Mac y solicitar un certificado de una autoridad de certificación.

SolicitarCertificacion

Rellenamos el correo electrónico, el nombre del certificado y marcamos “Se guarda en el disco” y pinchamos en “Continuar”

AsistenteCertificados

Nos preguntará el nombre con el que guardarlo y donde. Recomiendo usar un nombre explicativo de para que es, porque los certificados caducan cada año y se puede usar el mismo CSR para volver a generarlos, pero hay que usar un CSR distinto para cada certificado push de cada app y entorno. Yo lo he llamado “TutorialPushSandox.certSigningRequest”.

Volvemos a la web de desarrollador donde lo dejamos.

SubirCSR

Pulsamos en “Choose File”, buscamos el CSR generado, lo subimos y pulsamos “Generate”. Nos llevará a la pantalla de descarga del certificado.DescargaCertificado

Pinchamos en “Download” y se nos descargará el certificado con extensión .cer, pero normalmente necesitaremos on .p12, así que cuando se descargue hacemos doble click en la descarga y se nos instalará en la app “Acceso a Llaveros”. Lo desplegamos para que se vea así.

CertificadoLlaveros

Seleccionamos ambos a la vez y pulsamos con el botón derecho y pinchamos en “Exportar 2 ítems…”, ponemos el nombre y elegimos la carpeta donde guardarlo y al pulsar “Guardar” nos pedirá una contraseña y su confirmación para el certificado, la tendremos que recordar para cuando lo queramos usar en el servidor que envíe las notificaciones, ya sea uno propio como el que expliquemos en la parte 3 del tutorial o en un servicio de envío de push como urban airship, parse, pushwoosh, etc.

Y esto es todo, recordamos que este certificado es “Sandbox” para usar mientras se está en desarrollo y que habría que crear otro igual para producción, pero los pasos son los mismos.

Nota: Apple ahora ha sacado un nuevo certificado que vale tanto para desarrollo como para producción que se crea de otra forma que no explicaremos, pero nosotros hemos explicado la vieja forma, ya que si usamos un servicio de envío de notificaciones como urban airship, recomiendan seguir usando los dos certificados distintos.

10 comentarios en “Notificaciones Push iOS. Parte 1. Creación del Identificador y Certificados en el portal de desarrollador.

  1. Hola, gracias por la entrada

    Una duda, entiendo que el certificado generado debe guardarse del lado del servidor ¿Correcto?

    Es decir, al igual que generamos los certificados de desarrollo y producción para compilar con Phonegap, ¿Qué debe hacerse con este nuevo certificado?

    Yo compilo mis apps con phonegap build, y a la hora de configurar certificados no veo ninguna opción para certitificados push.

    Algo de luz por aquí por favor!

      1. Gracias por tu respuesta. Me imaginaba algo así, no iba tan tan perdido entonces 🙂

        ¿Dónde se guardarían para utilizarlo con Apache?
        ¿Si quiero hacer notificaciones PUSH para distintas APPs desde un mismo servidor? ¿Sería viable?

        1. En un servidor apache lo deberías colocar en un sitio que sea accesible dentro del servidor pero no desde internet (si es posible), y usar algún lenguaje de servidor de los que soporta apache para leerlo y comunicarse con los APNs de Apple. La comunicación se hace mediante sockets, pero hay librerías de distintos lenguajes que te facilitan mucho el tema de la conexión

  2. Hola, muy buen tutorial, pero me surge una pregunta, soy nuevo y estoy usando phonegap build para hacer una APP en iOS con notificaciones: ¿Necesito un certificado diferente para firma la app y otro para enviar notificaciones? es decir, ¿tengo que crear un certificado de iOS Development y otro APNs Development iOS o solo el de APNs?

    Gracias de antemano.

    1. Si, son certificados distintos, para APNs necesitas un certificado por aplicación que desarrolles, mientras que el de firmar te vale para todas las aplicaciones.

Deja un comentario

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