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

# Configuração do Mobile SDK

> Configure o SDK do OneSignal para Android, iOS, Huawei e frameworks multiplataforma como React Native, Flutter e 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>;
};

O SDK mobile do OneSignal habilita [notificações push](./push), [mensagens in-app](./in-app-messages-setup) e [Live Activities](./live-activities) nos seus apps iOS, Android, Huawei e Amazon. A configuração tem duas etapas:

1. **Configurar credenciais da plataforma** — conecte suas credenciais FCM, APNs, HMS ou ADM ao OneSignal
2. **Integrar o SDK** — instale o SDK do OneSignal para sua plataforma e inicialize-o no seu app

Para websites, consulte [Configuração do Web SDK](./web-push-setup).

***

## Configurar credenciais da plataforma

Cada plataforma requer suas próprias credenciais push. Configure as credenciais para cada plataforma que seu app suporta antes de integrar o SDK.

### Configure seu app e plataforma OneSignal

Configure seu app OneSignal com as plataformas que você suporta — Apple (APNs), Google (FCM), Huawei (HMS) e/ou Amazon (ADM).

<Note>
  Se sua organização já tem uma conta OneSignal, [peça para ser convidado](/docs/pt-BR/manage-team-members) à Organização. Caso contrário, [cadastre-se para uma conta gratuita](https://onesignal.com) para começar.
</Note>

<Accordion title="Instruções de configuração passo a passo" icon="circle-chevron-down">
  <Steps>
    <Step title="Crie ou selecione seu app">
      Crie um novo app clicando em **New App/Website**, ou adicione uma plataforma a um app existente em **Settings > Push & In-App**. Selecione a(s) plataforma(s) que você quer configurar e clique em **Next: Configure Your Platform**.

      <Frame caption="Configurando seu primeiro app OneSignal, Organização e canal.">
        <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="Dashboard do OneSignal mostrando o fluxo de configuração de novo app com nome da organização, nome do app e seleção de canal" width="2592" height="1904" data-path="images/dashboard/new-app-org-channel.png" />
      </Frame>
    </Step>

    <Step title="Configure credenciais da plataforma">
      Insira as credenciais para sua plataforma:

      * **Android**: [Configure Credenciais Firebase](/docs/pt-BR/android-firebase-credentials)
      * **iOS**: [Token p8 (Recomendado)](/docs/pt-BR/ios-p8-token-based-connection-to-apns) ou [Certificado p12](/docs/pt-BR/ios-p12-generate-certificates)
      * **Amazon**: [Gere API Key](/docs/pt-BR/generate-an-amazon-api-key)
      * **Huawei**: [Autorize OneSignal](/docs/pt-BR/authorize-onesignal-to-send-huawei-push)

      Clique em **Save & Continue** após inserir suas credenciais.
    </Step>

    <Step title="Salve seu App ID e instale o SDK">
      Seu **App ID** é exibido na tela final. Copie e salve-o — você precisa dele ao inicializar o SDK. Selecione sua plataforma de SDK e siga o guia de configuração.

      <Frame caption="Salve seu App ID e convide membros adicionais da equipe.">
        <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="Dashboard do OneSignal mostrando o App ID e a opção de convite de equipe após a configuração" width="2592" height="1904" data-path="images/dashboard/app-id-and-team-invite.png" />
      </Frame>
    </Step>
  </Steps>
</Accordion>

***

## Integrar o SDK

<Columns cols={2}>
  <Card title="Android nativo" icon="android" href="./android-sdk-setup">
    Integre o SDK do OneSignal em apps Android nativos usando FCM.
  </Card>

  <Card title="iOS nativo" icon="apple" href="./ios-sdk-setup">
    Integre o SDK do OneSignal em apps iOS nativos usando APNs.
  </Card>

  <Card title="React Native e Expo" icon="react" href="./react-native-sdk-setup">
    Configuração para ambientes React Native e Expo.
  </Card>

  <Card title="Flutter" icon="mobile" href="./flutter-sdk-setup">
    Configuração do SDK para apps Flutter usando Dart.
  </Card>

  <Card title="Unity" icon="unity" href="./unity-sdk-setup">
    Configuração do SDK multiplataforma para apps mobile baseados em Unity.
  </Card>

  <Card title=".NET MAUI" icon="microsoft" href="./net-sdk-setup">
    Integre o SDK do OneSignal com apps .NET MAUI.
  </Card>

  <Card title="Huawei Android nativo" icon="mobile-screen" href="./huawei-sdk-setup">
    Configuração do SDK para dispositivos Huawei usando serviços push HMS.
  </Card>

  <Card title="Cordova, Ionic e Capacitor" icon="code" href="./cordova-sdk-setup">
    Configuração para apps mobile híbridos Cordova, Ionic e Capacitor.
  </Card>
</Columns>

### Outras integrações

<Columns cols={2}>
  <Card title="FlutterFlow" icon="wand-magic-sparkles" href="./flutterflow-sdk-setup">
    Configuração do SDK low-code para apps FlutterFlow.
  </Card>

  <Card title="Median.co" icon="globe" href="./median-integration">
    Guia de integração para apps Median.co (anteriormente GoNative.io).
  </Card>
</Columns>

***

## Versões do SDK

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

***

## FAQ

### Os SDKs são necessários?

Não, mas são altamente recomendados e open source no [GitHub](https://github.com/OneSignal/sdks). Você pode integrar o OneSignal usando apenas a [REST API](/reference/rest-api-overview), mas os SDKs simplificam significativamente o processo, especialmente para lidar com notificações push entre plataformas.

### O que posso fazer sem o SDK?

Você pode usar as seguintes APIs diretamente:

* [Criar usuário](/reference/create-user)
* [Criar assinatura](/reference/create-subscription)
* [Atualizar usuário](/reference/update-user)
* [Atualizar assinatura](/reference/update-subscription)
* [Criar mensagem](/reference/create-message)
* [Referência de payload de notificação](./osnotification-payload)

<Info>
  [Mensagens in-app](./in-app-messages-setup) e [Live Activities](./live-activities) requerem o SDK — elas não podem ser entregues apenas via API.
</Info>

### Por que vocês recomendam usar os SDKs?

Notificações push têm requisitos específicos de plataforma que os SDKs lidam para você, incluindo:

* Obter push tokens em Android, iOS, Huawei e web
* Gerenciar status de assinatura e prompts de opt-in do usuário
* Exibir e processar notificações push no cliente

Os APNs da Apple e o FCM do Google usam formatos de payload diferentes. O SDK do OneSignal analisa payloads personalizados para exibir e rastrear mensagens com precisão. Manter isso manualmente adiciona complexidade significativa. Saiba mais: [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/)

### Preciso de apps OneSignal separados para iOS e Android?

Não. Um único app OneSignal suporta múltiplas plataformas — iOS, Android, Huawei, Amazon e web. Configure as credenciais de cada plataforma em **Settings > Push & In-App** e todas compartilham o mesmo app, usuários e segmentos.

### Dispositivos na China ou na Huawei podem receber notificações push?

Se o dispositivo tem Google Play Services, recebe push via FCM. Se o app foi baixado da Huawei AppGallery (incluindo dispositivos Huawei não-HarmonyOS rodando Android), recebe push via HMS — configure o [SDK Huawei](./huawei-sdk-setup) para habilitar isso. O OneSignal usa FCM por padrão para dispositivos que suportam tanto HMS quanto FCM. Você pode [preferir HMS sobre FCM](./huawei-sdk-setup#prefer-hms-over-fcm-optional) se necessário.
