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

# Configuration du SDK mobile

> Configurez le SDK OneSignal pour Android, iOS, Huawei et les frameworks multiplateformes comme React Native, Flutter et 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>;
};

Le SDK mobile OneSignal active les [notifications push](./push), les [messages in-app](./in-app-messages-setup) et les [Live Activities](./live-activities) dans vos applications iOS, Android, Huawei et Amazon. La configuration comprend deux étapes :

1. **Configurer les identifiants de plateforme** — connectez vos identifiants FCM, APNs, HMS ou ADM à OneSignal
2. **Intégrer le SDK** — installez le SDK OneSignal pour votre plateforme et initialisez-le dans votre application

Pour les sites web, consultez [Configuration du Web SDK](./web-push-setup).

***

## Configurer les identifiants de plateforme

Chaque plateforme nécessite ses propres identifiants push. Configurez les identifiants pour chaque plateforme prise en charge par votre application avant d'intégrer le SDK.

### Configurer votre application OneSignal et votre plateforme

Configurez votre application OneSignal avec les plateformes que vous prenez en charge — Apple (APNs), Google (FCM), Huawei (HMS) et/ou Amazon (ADM).

<Note>
  Si votre organisation possède déjà un compte OneSignal, [demandez à être invité](/docs/en/manage-team-members) à l'Organisation. Sinon, [inscrivez-vous pour un compte gratuit](https://onesignal.com) pour commencer.
</Note>

<Accordion title="Instructions de configuration étape par étape" icon="circle-chevron-down">
  <Steps>
    <Step title="Créer ou sélectionner votre application">
      Créez une nouvelle application en cliquant sur **New App/Website**, ou ajoutez une plateforme à une application existante dans **Settings > Push & In-App**. Sélectionnez la ou les plateformes que vous souhaitez configurer et cliquez sur **Next: Configure Your Platform**.

      <Frame caption="Configuration de votre première application, organisation et canal 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="Tableau de bord OneSignal montrant le flux de configuration de nouvelle application avec le nom de l'organisation, le nom de l'app et la sélection du canal" width="2592" height="1904" data-path="images/dashboard/new-app-org-channel.png" />
      </Frame>
    </Step>

    <Step title="Configurer les identifiants de plateforme">
      Entrez les identifiants pour votre plateforme :

      * **Android** : [Configurer les identifiants Firebase](/docs/en/android-firebase-credentials)
      * **iOS** : [Jeton p8 (Recommandé)](/docs/en/ios-p8-token-based-connection-to-apns) ou [Certificat p12](/docs/en/ios-p12-generate-certificates)
      * **Amazon** : [Générer une clé API](/docs/en/generate-an-amazon-api-key)
      * **Huawei** : [Autoriser OneSignal](/docs/en/authorize-onesignal-to-send-huawei-push)

      Cliquez sur **Save & Continue** après avoir saisi vos identifiants.
    </Step>

    <Step title="Enregistrer votre App ID et installer le SDK">
      Votre **App ID** est affiché sur l'écran final. Copiez et enregistrez-le — vous en avez besoin lors de l'initialisation du SDK. Sélectionnez votre plateforme SDK, puis suivez le guide de configuration.

      <Frame caption="Enregistrez votre App ID et invitez des membres d'équipe supplémentaires.">
        <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="Tableau de bord OneSignal montrant l'App ID et l'option d'invitation d'équipe après la configuration" width="2592" height="1904" data-path="images/dashboard/app-id-and-team-invite.png" />
      </Frame>
    </Step>
  </Steps>
</Accordion>

***

## Intégrer le SDK

<Columns cols={2}>
  <Card title="Android natif" icon="android" href="./android-sdk-setup">
    Intégrez le SDK OneSignal dans les applications Android natives via FCM.
  </Card>

  <Card title="iOS natif" icon="apple" href="./ios-sdk-setup">
    Intégrez le SDK OneSignal dans les applications iOS natives via APNs.
  </Card>

  <Card title="React Native et Expo" icon="react" href="./react-native-sdk-setup">
    Configuration pour les environnements React Native et Expo.
  </Card>

  <Card title="Flutter" icon="mobile" href="./flutter-sdk-setup">
    Configuration du SDK pour les applications Flutter utilisant Dart.
  </Card>

  <Card title="Unity" icon="unity" href="./unity-sdk-setup">
    Configuration du SDK multiplateforme pour les applications mobiles basées sur Unity.
  </Card>

  <Card title=".NET MAUI" icon="microsoft" href="./net-sdk-setup">
    Intégrez le SDK OneSignal avec les applications .NET MAUI.
  </Card>

  <Card title="Huawei Android natif" icon="mobile-screen" href="./huawei-sdk-setup">
    Configuration du SDK pour les appareils Huawei utilisant les services push HMS.
  </Card>

  <Card title="Cordova, Ionic et Capacitor" icon="code" href="./cordova-sdk-setup">
    Configuration pour les applications mobiles hybrides Cordova, Ionic et Capacitor.
  </Card>
</Columns>

### Autres intégrations

<Columns cols={2}>
  <Card title="FlutterFlow" icon="wand-magic-sparkles" href="./flutterflow-sdk-setup">
    Configuration SDK low-code pour les applications FlutterFlow.
  </Card>

  <Card title="Median.co" icon="globe" href="./median-integration">
    Guide d'intégration pour les applications Median.co (anciennement GoNative.io).
  </Card>
</Columns>

***

## Versions du SDK

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

***

## FAQ

### Les SDK sont-ils requis ?

Non, mais ils sont fortement recommandés et open source sur [GitHub](https://github.com/OneSignal/sdks). Vous pouvez intégrer OneSignal en utilisant uniquement la [REST API](/reference/rest-api-overview), mais les SDK simplifient considérablement le processus, notamment pour la gestion des notifications push sur plusieurs plateformes.

### Que puis-je faire sans le SDK ?

Vous pouvez utiliser les API suivantes directement :

* [Créer un utilisateur](/reference/create-user)
* [Créer un abonnement](/reference/create-subscription)
* [Mettre à jour un utilisateur](/reference/update-user)
* [Mettre à jour un abonnement](/reference/update-subscription)
* [Créer un message](/reference/create-message)
* [Référence de la charge utile de notification](./osnotification-payload)

<Info>
  Les [messages in-app](./in-app-messages-setup) et les [Live Activities](./live-activities) nécessitent le SDK — ils ne peuvent pas être envoyés via l'API seule.
</Info>

### Pourquoi recommandez-vous d'utiliser les SDK ?

Les notifications push ont des exigences spécifiques à la plateforme que les SDK gèrent pour vous, notamment :

* Obtention des tokens push sur Android, iOS, Huawei et web
* Gestion du statut d'abonnement et des invites d'opt-in utilisateur
* Affichage et traitement des notifications push sur le client

Les APNs d'Apple et le FCM de Google utilisent des formats de charge utile différents. Le SDK OneSignal analyse les charges utiles personnalisées pour afficher et suivre les messages avec précision. Gérer cela manuellement ajoute une complexité significative. En savoir plus : [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/)

### Ai-je besoin d'applications OneSignal séparées pour iOS et Android ?

Non. Une seule application OneSignal prend en charge plusieurs plateformes — iOS, Android, Huawei, Amazon et web. Configurez les identifiants de chaque plateforme dans **Settings > Push & In-App** et ils partagent tous la même application, les mêmes utilisateurs et les mêmes segments.

### Les appareils en Chine ou sur Huawei peuvent-ils recevoir des notifications push ?

Si l'appareil dispose de Google Play Services, il reçoit les notifications push via FCM. Si l'application a été téléchargée depuis le Huawei AppGallery (y compris les appareils Huawei non-HarmonyOS exécutant Android), elle reçoit les notifications via HMS — configurez le [SDK Huawei](./huawei-sdk-setup) pour l'activer. OneSignal utilise FCM par défaut pour les appareils qui prennent en charge à la fois HMS et FCM. Vous pouvez [préférer HMS à FCM](./huawei-sdk-setup#prefer-hms-over-fcm-optional) si nécessaire.
