> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Conexión basada en token p8 de iOS a APNs

> Configura una clave de autenticación .p8 para conectar tu app iOS o macOS a Apple Push Notification service (APNs) a través de OneSignal.

Para enviar notificaciones push a aplicaciones iOS, se requiere una conexión autenticada a Apple Push Notification Services (APNs). Puedes autenticarte usando un método **basado en token (clave .p8)** o un método **[basado en certificado (archivo .p12)](./ios-p12-generate-certificates)**, pero solo uno es necesario.

Esta guía te guiará a través de la configuración de una **clave .p8 basada en token**, el enfoque recomendado.

***

## Requisitos

Asegúrate de tener lo siguiente antes de comenzar:

* Una aplicación móvil de iOS.
* Una [**cuenta de Apple Developer de pago**](https://developer.apple.com/) con [acceso de **administrador**](https://appstoreconnect.apple.com/access/users).
* Una [**cuenta de OneSignal**](https://onesignal.com).
* Una Mac con Xcode 14+.
* Un proyecto de Xcode con la **capacidad de notificaciones push habilitada**.

***

## Configurar la autenticación de APNs

### Generar tu clave .p8 en la cuenta de Apple Developer

<Tip>
  Para las instrucciones completas de Apple, consulta [Crear una clave privada para acceder a un servicio](https://developer.apple.com/help/account/keys/create-a-private-key/).
</Tip>

1. Inicia sesión en tu [cuenta de Apple Developer](https://developer.apple.com/).
2. Ve a **Certificates, Identifiers & Profiles > [Keys](https://developer.apple.com/account/resources/authkeys)**.
3. Haz clic en el icono **azul más (+)**.
   * Si no lo ves, contacta a tu administrador para obtener acceso.

<Frame>
  <img src="https://mintcdn.com/onesignal/tNi1OgLc_p9hiq7_/images/docs/1e2ff6e-Apple_Key_Page.jpg?fit=max&auto=format&n=tNi1OgLc_p9hiq7_&q=85&s=695489e801fe6cb492ed826e0ea2c22b" alt="Página de claves de Apple Developer mostrando el ícono azul de más para crear una nueva clave" width="2616" height="884" data-path="images/docs/1e2ff6e-Apple_Key_Page.jpg" />
</Frame>

4. Selecciona **Apple Push Notifications service (APNs)**.
5. Al configurar la clave, asegúrate de que **Sandbox & Production** esté seleccionado:

<Frame>
  <img src="https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/p8-sandboxandproductionkey.png?fit=max&auto=format&n=KSCNwSpBCNSQ8xdF&q=85&s=1f04581e46bd74cdbc27792b243b952b" alt="Configuración de clave de Apple Developer con Sandbox y Production seleccionados" width="1232" height="495" data-path="images/docs/p8-sandboxandproductionkey.png" />
</Frame>

6. Ingresa un nombre para la clave y haz clic en **Continuar**, luego en **Registrar**.

<Frame>
  <img src="https://mintcdn.com/onesignal/3zq1PvSaqvUE2bIx/images/docs/312d551-Apple_Key_Page_-_Register.jpg?fit=max&auto=format&n=3zq1PvSaqvUE2bIx&q=85&s=9b88f0e1cdb3fbdba05357ef988a1165" alt="Página de registro de clave de Apple Developer con los botones Continue y Register" width="2622" height="922" data-path="images/docs/312d551-Apple_Key_Page_-_Register.jpg" />
</Frame>

7. **Descarga tu clave .p8** y guárdala de forma segura. No podrás descargarla nuevamente.

<Warning>
  Si necesitas crear una nueva .p8 y ya tienes dos, **primero debes revocar una de las claves existentes**, y ya no será utilizable.
</Warning>

***

### Cargar la clave .p8 a OneSignal

1. Navega a **Settings > Push & In-App > Apple iOS (APNs) Settings** en tu panel de OneSignal.

<Frame caption="Página de configuración push del panel de OneSignal.">
  <img src="https://mintcdn.com/onesignal/KPVdijCt4_xCbkO8/images/dashboard/push-and-in-app-ios-settings.png?fit=max&auto=format&n=KPVdijCt4_xCbkO8&q=85&s=af9c2dedfc4c8f26f3aeee035cba5eb1" alt="Página de configuración de OneSignal mostrando la sección Push e In-App con la configuración APNs de Apple iOS" width="1188" height="654" data-path="images/dashboard/push-and-in-app-ios-settings.png" />
</Frame>

2. Elige **.p8 Auth Key (Recomendado)** como método de autenticación.

<Frame caption="Si actualizas desde un p12 u otro p8, tendrás la opción de 'actualizar autenticación'">
  <img src="https://mintcdn.com/onesignal/NCUI56Tiw7V-s0dT/images/dashboard/apns-authentication-method-selection.png?fit=max&auto=format&n=NCUI56Tiw7V-s0dT&q=85&s=bb08d987da33025d482b107fc1db1045" alt="Selección de método de autenticación APNs de OneSignal mostrando la opción recomendada de clave Auth p8" width="1188" height="844" data-path="images/dashboard/apns-authentication-method-selection.png" />
</Frame>

Proporciona lo siguiente:

* **`Archivo .p8`** – El archivo de clave privada que descargaste de tu cuenta de Apple Developer.
* **`Key ID`** – Una cadena alfanumérica de 10 caracteres (ej.: `ABC123DEFG`) que se encuentra junto al nombre de tu clave en la [sección de Keys](https://developer.apple.com/account/resources/authkeys) de tu cuenta de Apple Developer. Asegúrate de que coincida con el archivo .p8 descargado.
* **`Team ID`** – Una cadena alfanumérica de 10 caracteres (ej.: `9A1B2C3D4E`) que aparece junto al nombre de tu equipo en la esquina superior derecha de tu [cuenta de Apple Developer](https://developer.apple.com/account/). Este **no** es el mismo que el Key ID.
* **`App Bundle ID`** – Una cadena de dominio inverso (ej.: `com.example.app`) que se encuentra en:
  * La [sección de identificadores](https://developer.apple.com/account/resources/identifiers/list) de tu cuenta de Apple Developer, o
  * **Xcode > Main App Target > Signing & Capabilities**

<Warning>
  El **Key ID** y el **Team ID** son cadenas de 10 caracteres que se encuentran en tu cuenta de Apple Developer, pero en ubicaciones diferentes. Verifica que no los hayas intercambiado — esta es la configuración incorrecta más común.
</Warning>

<Frame caption="Encontrar los detalles de tu clave .p8">
  <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/c8d0207041e7c277f7e4ca49a3f6100280ddcbf970fce9b720fddfbda6683bb6-p8.png?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=fc9c689b0880bda69813428ee7fdbe5f" alt="Cuenta de Apple Developer mostrando las ubicaciones del Key ID y Team ID" width="1445" height="506" data-path="images/docs/c8d0207041e7c277f7e4ca49a3f6100280ddcbf970fce9b720fddfbda6683bb6-p8.png" />
</Frame>

<Frame caption="Encontrar tu Bundle ID en Xcode">
  <img src="https://mintcdn.com/onesignal/_KaXe4GQkxsEfa17/images/docs/35a1fd8940c4964156b9b0b83fbc41772189ae3d2eb29f80318137887344cf4c-ea1f341-Screenshot_2024-06-18_at_3.25.41_PM.png?fit=max&auto=format&n=_KaXe4GQkxsEfa17&q=85&s=1ade7692a469b12376088ce5fac6c3c3" alt="Pestaña de Firma y Capacidades de Xcode mostrando el campo Identificador del Bundle" width="2830" height="798" data-path="images/docs/35a1fd8940c4964156b9b0b83fbc41772189ae3d2eb29f80318137887344cf4c-ea1f341-Screenshot_2024-06-18_at_3.25.41_PM.png" />
</Frame>

Haz clic en **Guardar y continuar** cuando termines.

<Check>
  Has configurado correctamente la **autenticación de APNs usando una clave .p8** en OneSignal.

  ¡Tu aplicación iOS ahora está lista para enviar y recibir notificaciones push! 🎉
</Check>

***

## Solución de problemas de .p8

<Steps>
  <Step title="Verificar formato del archivo .p8">
    * Abre el archivo `.p8` en un editor de texto.

    * Debería verse así:

      ```text theme={null}
      -----BEGIN PRIVATE KEY-----
      64 character line
      64 character line
      64 character line
      8 character line
      -----END PRIVATE KEY-----
      ```
  </Step>

  <Step title="Asegurarte de no haber cargado un .p12 por error">
    * Las claves `.p8` provienen de la sección **Keys** de tu cuenta de Apple Developer.
    * Los certificados `.p12` son de la sección **Certificates**. Estos no son compatibles con la autenticación .p8.
  </Step>

  <Step title="Confirmar que tienes el key id correcto">
    * Ve a tu [Apple Developer > sección de Keys](https://developer.apple.com/account/resources/authkeys).
    * El Key ID es la cadena de 10 caracteres que aparece junto al nombre de tu clave (ej.: `ABC123DEFG`).
    * Compara el Key ID que ingresaste en OneSignal con el que aparece para la clave `.p8` descargada.
    * **No lo confundas con el Team ID** — ambos son cadenas de 10 caracteres, pero se encuentran en diferentes ubicaciones.
  </Step>

  <Step title="Verificar el team id">
    * Tu **Team ID** aparece en la esquina superior derecha de tu [cuenta de Apple Developer](https://developer.apple.com/account/).
    * Asegúrate de que se copió exactamente y coincida con la cuenta donde se generó la clave.
    * **No lo confundas con el Key ID** — el Team ID identifica tu cuenta de desarrollador, no una clave específica.
  </Step>

  <Step title="Asegurarte de que la clave tenga capacidad apns">
    * Al ver tu clave en Apple Developer, debería aparecer la capacidad **Apple Push Notifications service (APNs)**.
    * Si no es así, revoca la clave y crea una nueva.
  </Step>

  <Step title="Espera unos minutos">
    * Las claves recién creadas pueden tardar **10-15 minutos** en propagarse antes de que Apple permita la autenticación externa.
    * Si obtienes errores de validación inmediatamente después de la creación, espera e intenta nuevamente.
  </Step>
</Steps>

### ¿Necesitas ayuda?

* Revoca la clave `.p8` actual y crea una nueva desde cero.
* Verifica dos veces que estás usando un **Bundle ID válido** de la misma cuenta bajo la cual se creó la clave.
* Contacta a `support@onesignal.com` con el Key ID, Team ID, Bundle ID y una captura de pantalla redactada de tu configuración de clave de Apple Developer.

***

## Próximos pasos

<Columns cols={2}>
  <Card title="Configuración del iOS SDK" icon="apple" href="./ios-sdk-setup">
    Instala el SDK de OneSignal, inicialízalo en tu app y envía una notificación de prueba.
  </Card>

  <Card title="Configuración del SDK móvil" icon="mobile" href="./mobile-sdk-setup">
    Elige tu plataforma y sigue la guía completa de integración del SDK para Android, iOS o frameworks multiplataforma.
  </Card>
</Columns>

***

## Preguntas frecuentes

### ¿Cuál es la diferencia entre .p8 y .p12?

Una **clave .p8** es una clave de autenticación basada en token que no expira y funciona para todas las apps bajo tu cuenta de Apple Developer. Un **certificado .p12** es específico de la app y expira después de un año, requiriendo renovación anual. OneSignal recomienda .p8 por su simplicidad y menor mantenimiento. Consulta la [guía de certificados .p12](./ios-p12-generate-certificates) para el método alternativo.

### ¿Mi clave .p8 expira?

No. A diferencia de los certificados .p12, las claves .p8 no expiran. Una vez creada, una clave .p8 permanece válida hasta que la revoques en tu cuenta de Apple Developer.

### ¿Puedo usar una sola clave .p8 para múltiples apps?

Sí. Una sola clave .p8 funciona para todas las apps bajo la misma cuenta de Apple Developer. Puedes subir el mismo archivo .p8 a múltiples apps de OneSignal — cada app solo necesita su propio Bundle ID único.

### ¿Necesito un perfil de aprovisionamiento y cómo crearlo?

Sí, Apple requiere diferentes tipos de perfiles para desarrollo, pruebas (Ad Hoc) y distribución en la App Store.

En Xcode, deberías poder seleccionar **Gestionar firma automáticamente** para crear uno automáticamente.

<Frame>
  <img src="https://mintcdn.com/onesignal/jFWn5xzleD8du3j6/images/docs/63400c422a45ceb7bd54a647c73252bc4221e3d9c62e7a595b4d58f8ae1a8c3e-Screenshot_2025-04-21_at_4.48.21_PM.png?fit=max&auto=format&n=jFWn5xzleD8du3j6&q=85&s=1f8f70d1078a89beb067d442690d6594" alt="Pestaña de Firma y Capacidades de Xcode con la gestión automática de firma habilitada" width="2058" height="632" data-path="images/docs/63400c422a45ceb7bd54a647c73252bc4221e3d9c62e7a595b4d58f8ae1a8c3e-Screenshot_2025-04-21_at_4.48.21_PM.png" />
</Frame>

De lo contrario, consulta la [documentación de Apple sobre perfiles de aprovisionamiento](https://developer.apple.com/help/account/provisioning-profiles/provisioning-profile-updates) para obtener detalles.

***
