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

# Configuración del SDK móvil

> Configura el SDK de OneSignal para Android, iOS, Huawei y frameworks multiplataforma como React Native, Flutter y Unity.

export const SdkReleasesIframe = ({sdkFilter = undefined, viewMode = undefined, height, ...frameProps}) => {
  const baseUrl = 'https://onesignal.github.io/sdk-releases';
  const buildUrl = (theme, sdkFilter, viewMode) => {
    const url = new URL(baseUrl);
    const params = new URLSearchParams();
    if (theme) {
      params.set('theme', theme);
    }
    if (sdkFilter) {
      params.set('sdk', sdkFilter);
    }
    if (viewMode) {
      params.set('viewMode', viewMode);
    }
    if (params.toString()) {
      url.search = params.toString();
    }
    return url.toString();
  };
  const detectTheme = () => {
    if (document.documentElement.classList.contains('dark')) {
      return 'dark';
    }
    return 'light';
  };
  const [theme, setTheme] = useState('light');
  const [iframeSrc, setIframeSrc] = useState(() => {
    const initialTheme = detectTheme();
    return buildUrl(initialTheme, sdkFilter, viewMode);
  });
  useEffect(() => {
    const currentTheme = detectTheme();
    setTheme(currentTheme);
    setIframeSrc(buildUrl(currentTheme, sdkFilter, viewMode));
    const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
    const handleThemeChange = () => {
      const newTheme = detectTheme();
      setTheme(newTheme);
      setIframeSrc(buildUrl(newTheme, sdkFilter, viewMode));
    };
    if (mediaQuery.addEventListener) {
      mediaQuery.addEventListener('change', handleThemeChange);
    } else {
      mediaQuery.addListener(handleThemeChange);
    }
    window.addEventListener('storage', handleThemeChange);
    const observer = new MutationObserver(handleThemeChange);
    observer.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ['class', 'data-theme']
    });
    return () => {
      if (mediaQuery.removeEventListener) {
        mediaQuery.removeEventListener('change', handleThemeChange);
      } else {
        mediaQuery.removeListener(handleThemeChange);
      }
      window.removeEventListener('storage', handleThemeChange);
      observer.disconnect();
    };
  }, [sdkFilter, viewMode]);
  const getIframeHeight = () => {
    if (viewMode === 'table') {
      return '450';
    }
    if (viewMode === 'mini') {
      return '170';
    }
    return '800';
  };
  const iframeHeight = height || getIframeHeight();
  return <Frame {...frameProps}>
      <iframe src={iframeSrc} width="100%" height={iframeHeight} frameBorder="0" style={{
    border: "none"
  }} title="SDK Releases" key={iframeSrc} />
    </Frame>;
};

El SDK móvil de OneSignal habilita [notificaciones push](./push), [mensajes in-app](./in-app-messages-setup) y [Live Activities](./live-activities) en tus apps de iOS, Android, Huawei y Amazon. La configuración tiene dos pasos:

1. **Configurar las credenciales de la plataforma** — conecta tus credenciales de FCM, APNs, HMS o ADM a OneSignal
2. **Integrar el SDK** — instala el SDK de OneSignal para tu plataforma e inicialízalo en tu app

Para sitios web, consulta [Configuración del Web SDK](./web-push-setup).

***

## Configurar las credenciales de la plataforma

Cada plataforma requiere sus propias credenciales push. Configura las credenciales para cada plataforma que tu app soporta antes de integrar el SDK.

### Configure su aplicación y plataforma de OneSignal

Configure su aplicación de OneSignal con las plataformas que admite — Apple (APNs), Google (FCM), Huawei (HMS) y/o Amazon (ADM).

<Note>
  Si su organización ya tiene una cuenta de OneSignal, [solicite ser invitado](/docs/es/manage-team-members) a la Organización. De lo contrario, [regístrese para obtener una cuenta gratuita](https://onesignal.com) para comenzar.
</Note>

<Accordion title="Instrucciones de configuración paso a paso" icon="circle-chevron-down">
  <Steps>
    <Step title="Cree o seleccione su aplicación">
      Cree una nueva aplicación haciendo clic en **Nueva aplicación/sitio web**, o agregue una plataforma a una aplicación existente en **Configuración > Push e In-App**. Seleccione la(s) plataforma(s) que desea configurar y haga clic en **Siguiente: Configure su plataforma**.

      <Frame caption="Configuración de su primera aplicación, organización y canal de OneSignal.">
        <img src="https://mintcdn.com/onesignal/BK2J-grzBpDdh8NC/images/dashboard/new-app-org-channel.png?fit=max&auto=format&n=BK2J-grzBpDdh8NC&q=85&s=ee0045484152ed15095f619344aa0564" alt="Panel de OneSignal que muestra el flujo de configuración de nueva aplicación con nombre de organización, nombre de app y selección de canal" width="2592" height="1904" data-path="images/dashboard/new-app-org-channel.png" />
      </Frame>
    </Step>

    <Step title="Configure las credenciales de plataforma">
      Ingrese las credenciales para su plataforma:

      * **Android**: [Configure las credenciales de Firebase](/docs/es/android-firebase-credentials)
      * **iOS**: [Token p8 (Recomendado)](/docs/es/ios-p8-token-based-connection-to-apns) o [Certificado p12](/docs/es/ios-p12-generate-certificates)
      * **Amazon**: [Genere una clave API](/docs/es/generate-an-amazon-api-key)
      * **Huawei**: [Autorice OneSignal](/docs/es/authorize-onesignal-to-send-huawei-push)

      Haga clic en **Guardar y continuar** después de ingresar sus credenciales.
    </Step>

    <Step title="Guarde su ID de aplicación e instale el SDK">
      Su **ID de aplicación** se muestra en la pantalla final. Cópielo y guárdelo — lo necesita al inicializar el SDK. Seleccione su plataforma de SDK y siga la guía de configuración.

      <Frame caption="Guarde su ID de aplicación e invite a miembros adicionales del equipo.">
        <img src="https://mintcdn.com/onesignal/VypVshrFHTBZfEma/images/dashboard/app-id-and-team-invite.png?fit=max&auto=format&n=VypVshrFHTBZfEma&q=85&s=e1e2aab6cca7c4aa6b9a76eff362d5af" alt="Panel de OneSignal que muestra el ID de aplicación y la opción de invitar al equipo después de la configuración" width="2592" height="1904" data-path="images/dashboard/app-id-and-team-invite.png" />
      </Frame>
    </Step>
  </Steps>
</Accordion>

***

## Integrar el SDK

<Columns cols={2}>
  <Card title="Android nativo" icon="android" href="./android-sdk-setup">
    Integra el SDK de OneSignal en apps Android nativas usando FCM.
  </Card>

  <Card title="iOS nativo" icon="apple" href="./ios-sdk-setup">
    Integra el SDK de OneSignal en apps iOS nativas usando APNs.
  </Card>

  <Card title="React Native y Expo" icon="react" href="./react-native-sdk-setup">
    Configuración para entornos React Native y Expo.
  </Card>

  <Card title="Flutter" icon="mobile" href="./flutter-sdk-setup">
    Configuración del SDK para apps Flutter usando Dart.
  </Card>

  <Card title="Unity" icon="unity" href="./unity-sdk-setup">
    Configuración del SDK multiplataforma para apps móviles basadas en Unity.
  </Card>

  <Card title=".NET MAUI" icon="microsoft" href="./net-sdk-setup">
    Integra el SDK de OneSignal con apps .NET MAUI.
  </Card>

  <Card title="Huawei Android nativo" icon="mobile-screen" href="./huawei-sdk-setup">
    Configuración del SDK para dispositivos Huawei usando servicios push de HMS.
  </Card>

  <Card title="Cordova, Ionic y Capacitor" icon="code" href="./cordova-sdk-setup">
    Configuración para apps móviles híbridas de Cordova, Ionic y Capacitor.
  </Card>
</Columns>

### Otras integraciones

<Columns cols={2}>
  <Card title="FlutterFlow" icon="wand-magic-sparkles" href="./flutterflow-sdk-setup">
    Configuración del SDK low-code para apps FlutterFlow.
  </Card>

  <Card title="Median.co" icon="globe" href="./median-integration">
    Guía de integración para apps Median.co (anteriormente GoNative.io).
  </Card>
</Columns>

***

## Versiones del SDK

<SdkReleasesIframe sdkFilter="android,ios,unity,flutter,xamarin,cordova,reactnative,dotnet" viewMode="table" height="500" />

***

## Preguntas frecuentes

### ¿Son requeridos los SDKs?

No, pero son altamente recomendados y de código abierto en [GitHub](https://github.com/OneSignal/sdks). Puedes integrar OneSignal usando solo la [REST API](/reference/rest-api-overview), pero los SDKs simplifican el proceso significativamente, especialmente para manejar notificaciones push en todas las plataformas.

### ¿Qué puedo hacer sin el SDK?

Puedes usar las siguientes APIs directamente:

* [Crear usuario](/reference/create-user)
* [Crear suscripción](/reference/create-subscription)
* [Actualizar usuario](/reference/update-user)
* [Actualizar suscripción](/reference/update-subscription)
* [Crear mensaje](/reference/create-message)
* [Referencia de payload de notificación](./osnotification-payload)

<Info>
  Los [mensajes in-app](./in-app-messages-setup) y las [Live Activities](./live-activities) requieren el SDK — no se pueden entregar solo mediante API.
</Info>

### ¿Por qué recomiendan usar los SDKs?

Las notificaciones push tienen requisitos específicos de la plataforma que los SDKs manejan por ti, incluyendo:

* Obtener push tokens en Android, iOS, Huawei y web
* Gestionar el estado de suscripción y los prompts de opt-in del usuario
* Mostrar y procesar notificaciones push en el cliente

Los APNs de Apple y FCM de Google usan diferentes formatos de payload. El SDK de OneSignal analiza los payloads personalizados para mostrar y rastrear mensajes con precisión. Mantener esto manualmente agrega una complejidad significativa. Aprende más: [Build vs. Buy: What Goes Into Building a Push Notification Platform](https://onesignal.com/blog/build-vs-buy-what-goes-into-building-a-push-notification-platform/)

### ¿Necesito apps de OneSignal separadas para iOS y Android?

No. Una sola app de OneSignal soporta múltiples plataformas — iOS, Android, Huawei, Amazon y web. Configura las credenciales de cada plataforma en **Settings > Push & In-App** y todas comparten la misma app, usuarios y segmentos.

### ¿Pueden los dispositivos en China o en Huawei recibir notificaciones push?

Si el dispositivo tiene Google Play Services, recibe push a través de FCM. Si la app fue descargada desde Huawei AppGallery (incluidos los dispositivos Huawei no-HarmonyOS ejecutando Android), recibe push a través de HMS — configura el [SDK de Huawei](./huawei-sdk-setup) para habilitarlo. OneSignal usa FCM por defecto para dispositivos que soportan tanto HMS como FCM. Puedes [preferir HMS sobre FCM](./huawei-sdk-setup#prefer-hms-over-fcm-optional) si es necesario.
