> ## 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.

# Generación de certificado p12 para iOS

> Genera y carga un certificado push .p12 para conectar tu aplicación iOS o macOS al servicio de notificaciones push de Apple (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)](./ios-p8-token-based-connection-to-apns)** o un método **basado en certificado (archivo .p12)**, pero solo uno es necesario.

<Warning>
  Los certificados .p12 expiran después de un año. Si no quieres gestionar la renovación de este certificado, puedes [crear una clave .p8](./ios-p8-token-based-connection-to-apns) en su lugar, que no expira.
</Warning>

Esta guía te guiará a través de la configuración de un **archivo basado en certificado (.p12)**. Esto no se recomienda porque debes renovarlo anualmente. Esto incluye iniciar sesión en tu cuenta de Apple Developer para generar el nuevo certificado y cargarlo en tu panel de OneSignal cada año.

***

## Requisitos

Asegúrate de tener lo siguiente antes de comenzar:

* Una aplicación móvil de iOS o macOS.
* 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+.
* El **Bundle ID** para el objetivo de tu aplicación como está establecido en Xcode.
* Un proyecto de Xcode con la **capacidad de notificaciones push habilitada**.

***

## Crear una Solicitud de Firma de Certificado (CSR)

Primero necesitas crear un archivo `.certSigningRequest` en macOS.

1. Abre **Aplicaciones > Utilidades > Acceso a Llaveros**.
2. Desde la barra de menú, haz clic en **Acceso a Llaveros > Asistente de certificados > Solicitar un certificado de una autoridad de certificación...**

<Frame caption="Acceso a llaveros de Mac">
  <img src="https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/4792ecd2f2859197d192d41e953c7cb461b62a08955e36de8674d13ebe3245d9-image.png?fit=max&auto=format&n=YOTSrtBSoqdrJ37A&q=85&s=0d53d2a7d0a7992bb646cda2c10b2e3f" alt="Menú de Acceso a Llaveros mostrando la opción Asistente de certificados" width="709" height="314" data-path="images/docs/4792ecd2f2859197d192d41e953c7cb461b62a08955e36de8674d13ebe3245d9-image.png" />
</Frame>

3. Completa los campos requeridos:
   * **Dirección de correo electrónico del usuario**: `[email protected]`
   * **Nombre común**: Tu nombre o el nombre del certificado
   * **Dirección de correo electrónico de la CA**: Deja esto en blanco
   * **La solicitud es**: Selecciona **Guardada en el disco**

<Frame caption="Ventana del Asistente de certificados">
  <img src="https://mintcdn.com/onesignal/Xl2NHJvxakrK4JbL/images/docs/edfa46c8fa6d2a2743ec85d049cbed85d67eb4163388f44c7cbb602740ec1430-image.png?fit=max&auto=format&n=Xl2NHJvxakrK4JbL&q=85&s=d78feadfda1f4a2c71806f8ab10edd04" alt="Ventana del Asistente de certificados con los campos de correo electrónico, nombre común y Guardada en el disco" width="728" height="554" data-path="images/docs/edfa46c8fa6d2a2743ec85d049cbed85d67eb4163388f44c7cbb602740ec1430-image.png" />
</Frame>

4. Haz clic en **Continuar**, elige una ubicación para guardar el archivo `.certSigningRequest` y haz clic en **Guardar**.

***

## Habilitar capacidades de push para la aplicación

<Note>
  Omite esta sección si usas **Gestionar firma automáticamente** en Xcode.
</Note>

1. Ve a la sección de [identificadores](https://developer.apple.com/account/ios/identifier/bundle) del portal de Apple Developer, localiza y selecciona el **ID de aplicación** de tu aplicación de la lista.

<Frame>
  <img src="https://mintcdn.com/onesignal/6v_cVPknFpo5qSVB/images/docs/0f111cc6bc3d596c4f8ede9a8f62f8fafc526358cfc0f2f8b1e1a4f7fc8248fc-image.png?fit=max&auto=format&n=6v_cVPknFpo5qSVB&q=85&s=05b2003fb8c2fcd9131c44a793a0aba3" alt="Sección de Identificadores del portal de Apple Developer mostrando la lista de IDs de aplicación" width="894" height="319" data-path="images/docs/0f111cc6bc3d596c4f8ede9a8f62f8fafc526358cfc0f2f8b1e1a4f7fc8248fc-image.png" />
</Frame>

2. Habilita la capacidad de **notificaciones push** marcando la casilla.

<Warning>
  **No** hagas clic en **"Configure"** — solo habilita el interruptor.
</Warning>

<Frame>
  <img src="https://mintcdn.com/onesignal/_KaXe4GQkxsEfa17/images/docs/3a420360bc845131ad00179d9542b9cc0dae47448ee0eef5068e609b7340f5d3-image.png?fit=max&auto=format&n=_KaXe4GQkxsEfa17&q=85&s=ba0781029d19036ddad3db3e45037d2b" alt="Lista de capacidades del ID de aplicación con la casilla de notificaciones push habilitada" width="2008" height="142" data-path="images/docs/3a420360bc845131ad00179d9542b9cc0dae47448ee0eef5068e609b7340f5d3-image.png" />
</Frame>

***

## Crear un certificado push

Sigue estos pasos para generar el certificado SSL del servicio de notificaciones push de Apple (APNs):

1. Visita la [página de certificados de Apple](https://developer.apple.com/account/resources/certificates/add).

2. Haz clic en el botón **más (+)** para crear un nuevo certificado.

3. En **Services**, selecciona:

   * **Apple Push Notification service SSL (Sandbox & Production)**
   * Luego haz clic en **Continuar**

   <Frame>
     <img src="https://mintcdn.com/onesignal/MUgio66t0sYhGEvj/images/docs/6a48d1c410b80812f2893209eec0ae3d761ec86e40229b03ac780f1ae7124e48-image.png?fit=max&auto=format&n=MUgio66t0sYhGEvj&q=85&s=6e0d0bb4d73dab95c32a0dc96d740723" alt="Página de certificados de Apple mostrando la opción Apple Push Notification service SSL Sandbox y Production" width="896" height="865" data-path="images/docs/6a48d1c410b80812f2893209eec0ae3d761ec86e40229b03ac780f1ae7124e48-image.png" />
   </Frame>

4. Selecciona tu **ID de aplicación** de la lista y haz clic en **Continuar**.

<Frame>
  <img src="https://mintcdn.com/onesignal/_KaXe4GQkxsEfa17/images/docs/35daef0614fe669cadeb12adb900f0da6deab8b4283e29e1ba2712ce3d23e634-image.png?fit=max&auto=format&n=_KaXe4GQkxsEfa17&q=85&s=af9f0fb1fefed645b5ebefc6964d0d2d" alt="Menú desplegable de selección de ID de aplicación para el certificado push" width="897" height="366" data-path="images/docs/35daef0614fe669cadeb12adb900f0da6deab8b4283e29e1ba2712ce3d23e634-image.png" />
</Frame>

5. Carga tu archivo `.certSigningRequest` generado previamente.

<Frame>
  <img src="https://mintcdn.com/onesignal/MUgio66t0sYhGEvj/images/docs/6bb85bd5c6f420f73f1325ca5ccceea1c9cb22c618ccae8e7b34b5ead7fe28aa-image.png?fit=max&auto=format&n=MUgio66t0sYhGEvj&q=85&s=1ca586cee9190e53ea681b411e36a786" alt="Diálogo para cargar el archivo de Solicitud de Firma de Certificado" width="662" height="626" data-path="images/docs/6bb85bd5c6f420f73f1325ca5ccceea1c9cb22c618ccae8e7b34b5ead7fe28aa-image.png" />
</Frame>

6. Haz clic en **Continuar**, luego haz clic en **Descargar** para guardar el archivo `.cer` resultante en tu computadora.

<Frame>
  <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/ca14b193b3ac73e0e4dfbc1697a3e24454341ebd880d2391d369fe20868f9434-image.png?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=e81079a2a25e6e82ed0eb9f1204ab774" alt="Botón de descarga para el archivo de certificado .cer generado" width="924" height="368" data-path="images/docs/ca14b193b3ac73e0e4dfbc1697a3e24454341ebd880d2391d369fe20868f9434-image.png" />
</Frame>

Usarás este archivo `.cer` en la siguiente sección para crear tu certificado `.p12`.

***

## Crear una clave privada y exportar el certificado .p12

1. Haz **doble clic** en el archivo `.cer` descargado para importarlo en **Acceso a Llaveros**.

2. En Acceso a Llaveros, navega a:

   * **Llaveros > Inicio de sesión**
   * **Categoría > Mis certificados**

3. Localiza el certificado llamado **Apple Push Services**.

4. Haz **clic derecho** en el certificado y selecciona **Exportar**.

<Frame caption="La exportación generará un archivo .p12 en la ubicación de archivo deseada">
  <img src="https://mintcdn.com/onesignal/RWtLFPeffHrC81wI/images/docs/a8aae38ea4755020f4695ddd6fd2ccfc0e0bd8d262414665467f973d3ed90912-image.png?fit=max&auto=format&n=RWtLFPeffHrC81wI&q=85&s=ce1453c325f0ad6790754f25a7a1a506" alt="Menú contextual de Acceso a Llaveros mostrando la opción Exportar para el certificado Apple Push Services" width="960" height="720" data-path="images/docs/a8aae38ea4755020f4695ddd6fd2ccfc0e0bd8d262414665467f973d3ed90912-image.png" />
</Frame>

5. Elige una ubicación para guardar el archivo y selecciona el formato de archivo como **`.p12`**.

6. Cuando se te solicite, establece una **contraseña** para el archivo `.p12`. Necesitarás esta contraseña al cargar a OneSignal.

<Frame>
  <img src="https://mintcdn.com/onesignal/6v_cVPknFpo5qSVB/images/docs/070cbc6d0197377e3805cf23e92bf9d876efdb1754e9c233db8bde453cc7dcd4-Screenshot_2025-04-16_at_2.10.17_PM.png?fit=max&auto=format&n=6v_cVPknFpo5qSVB&q=85&s=58e96cbb675ff90014c37e7fd1852975" alt="Diálogo de guardado mostrando la selección de formato de archivo .p12 y el campo de contraseña" width="918" height="558" data-path="images/docs/070cbc6d0197377e3805cf23e92bf9d876efdb1754e9c233db8bde453cc7dcd4-Screenshot_2025-04-16_at_2.10.17_PM.png" />
</Frame>

***

## Cargar el .p12 a OneSignal

1. En tu [panel de OneSignal](https://onesignal.com), ve a tu aplicación > **Settings > Push & In-App > Apple iOS**.
2. Carga el archivo `.p12` (e ingresa la contraseña si estableciste una). Haz clic en **Guardar**.

<Check>
  Has configurado correctamente la **autenticación de APNs usando un certificado .p12** en OneSignal.

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

***

## Solución de problemas de .p12

### Error de formato de certificado inválido

**Causa:** El archivo cargado no está en formato `.p12`.

**Solución:** Asegúrate de exportar el certificado desde Acceso a Llaveros **como `.p12`** (no `.cer` o `.pem`).

### "Contraseña incorrecta" al cargar a OneSignal

**Causa:** La contraseña se ingresó incorrectamente o no se estableció.

**Solución:**

* Intenta exportar nuevamente y establece una **nueva contraseña**.
* Asegúrate de que no se agreguen espacios adicionales al pegar.
* Si usas Provisionator, la contraseña se muestra en la interfaz de usuario.

### Falta la clave privada en el archivo exportado

**Causa:** El certificado se importó pero no está emparejado con una clave privada.

**Solución:**

* Asegúrate de **generar el CSR** desde Acceso a Llaveros en la misma máquina.
* Después de descargar el archivo `.cer`, haz doble clic para instalarlo y verifica si la clave aparece en **Mis certificados**.

### Las notificaciones push no funcionan después de cargar

**Causa:** ID de aplicación incorrecto o el perfil de aprovisionamiento carece de capacidades.

**Solución:**

* Confirma que el `.p12` coincida con el **ID de aplicación** usado en la aplicación.
* En el portal de Apple Developer, asegúrate de que el ID de aplicación tenga **notificaciones push habilitadas**.
* Asegúrate de que el perfil de aprovisionamiento incluya **Push**.

### Certificado expirado

**Causa:** El certificado `.p12` ya no es válido.

**Solución:**

* Ve a Apple Developer > Certificados y verifica la fecha de expiración.
* Revoca el certificado antiguo y crea uno nuevo.

***

## Próximos pasos

<Columns cols={2}>
  <Card title="Configuración del SDK de iOS" icon="apple" href="./ios-sdk-setup">
    Instala el SDK de OneSignal, inicialízalo en tu aplicación 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ándo expira mi certificado .p12 y cómo lo renuevo?

Los certificados .p12 expiran **un año** después de su creación. Para renovarlo, genera un nuevo CSR, crea un nuevo certificado push en Apple Developer, expórtalo como .p12 y vuelve a cargarlo en tu panel de OneSignal. Establece un recordatorio en el calendario para evitar interrupciones. Como alternativa, cambia a una [clave .p8](./ios-p8-token-based-connection-to-apns), que no expira.

### ¿Debo usar .p8 o .p12?

OneSignal recomienda las **claves .p8** para la mayoría de las aplicaciones. Una clave .p8 no expira, funciona con todas las aplicaciones bajo tu cuenta de Apple Developer y es más sencilla de gestionar. Un certificado .p12 es específico de la aplicación y debe renovarse anualmente. Consulta la [guía de claves .p8](./ios-p8-token-based-connection-to-apns) para obtener instrucciones de configuración.

### ¿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/jBdBk5XvQR5eKOks/images/docs/73993224529058ffe5797afc5998c49bd54a64d5dd97cce26479b5f69c0bf46d-Screenshot_2025-04-21_at_4.48.21_PM.png?fit=max&auto=format&n=jBdBk5XvQR5eKOks&q=85&s=794544ccd6d05744f053386b2a961c74" alt="Pestaña de Firma y Capacidades de Xcode con Gestionar firma automáticamente habilitado" width="2058" height="632" data-path="images/docs/73993224529058ffe5797afc5998c49bd54a64d5dd97cce26479b5f69c0bf46d-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.

***
