Visão geral
Este guia explica como integrar notificações push do OneSignal em um aplicativo .NET MAUI. Ele cobre tudo, desde a instalação até a configuração e gerenciamento do service worker.Requisitos
- .NET 7.0+
- Visual Studio 2019 ou mais recente
- Aplicativo OneSignal e plataforma configurados
- macOS com Xcode 14+ (instruções de configuração usam Xcode 16.2)
- Dispositivo com iOS 12+, iPadOS 12+ ou simulador Xcode executando iOS 16.2+
- CocoaPods 1.16.2+
- Dispositivo ou emulador Android 7.0+ com Google Play Store (Services) instalado
Configure seu app e plataforma OneSignal
Configuração obrigatória para notificações push Para começar a enviar notificações push com OneSignal, você deve primeiro configurar seu app OneSignal com todas as plataformas que você suporta—Apple (APNs), Google (FCM), Huawei (HMS) e/ou Amazon (ADM).Instruções passo a passo para configurar seu app OneSignal.
Instruções passo a passo para configurar seu app OneSignal.
Crie ou selecione seu app
- Para adicionar plataformas a um app existente, vá para Settings > Push & In-App no dashboard OneSignal.
- Para começar do zero, clique em New App/Website e siga as instruções.

Exemplo mostrando criação de um novo app.
Configure e ative uma plataforma
- Escolha um nome claro e reconhecível para seu app e organização.
- Selecione a(s) plataforma(s) que você quer configurar (iOS, Android, etc.).
- Clique em Next: Configure Your Platform.

Exemplo configurando seu primeiro app OneSignal, org e canal.
Configure credenciais da plataforma
- Android: Configure Credenciais Firebase
- iOS: Token p8 (Recomendado) ou Certificado p12
- Amazon: Gere API Key
- Huawei: Autorize OneSignal
Escolha o SDK alvo

Selecione qual SDK você está usando para navegar à documentação.
Instale o SDK e salve seu App ID

Salve seu App ID e convide membros adicionais da equipe.
Configuração do SDK
1. Adicionar SDK
Usando a CLI .NET:2. Inicializar SDK
App.xaml.cs.
Substitua YOUR_APP_ID pelo seu OneSignal App ID encontrado no painel OneSignal Settings > Keys & IDs.
3. Adicionar uma extensão de serviço iOS
A Microsoft tem um guia sobre geração de uma Notification Service Extension aqui, usando Visual Studio e Visual Studio para Mac, mas não tem orientação sobre como você criaria isso para VSCode neste momento. Se você gerar uma extensão de serviço seguindo o guia acima, você pode seguir este código em nosso projeto de exemplo encontrado no GithubConfiguração Android
Certifique-se de que seu app OneSignal está configurado para a plataforma Android usando suas credenciais Firebase. Configure seus ícones de notificação para corresponder à marca do seu app. Se este passo for pulado, um ícone de sino padrão será exibido para suas notificações push. Build para Android Neste ponto, você deve ser capaz de fazer build e executar seu app em um dispositivo Android físico ou emulador sem problemas.- Continue com a configuração iOS, se aplicável.
- Ou pule para Testando a integração do OneSignal SDK.
Configuração iOS
Certifique-se de que seu app OneSignal está configurado para a plataforma iOS usando o Token p8 (Recomendado) ou Certificado p12. Siga estes passos para adicionar notificações push ao seu app iOS, incluindo suporte para Badges, Entrega Confirmada e imagens.1. Adicione capability Push Notifications ao app target
A capability Push Notifications permite que seu app registre um token push e receba notificações.- Abra o arquivo
.xcworkspacedo seu app no Xcode. - Selecione your app target > Signing & Capabilities
- Clique em + Capability e adicione a capability Push Notifications

O app target recebe a capability Push Notifications.
2. Adicione capability Background Modes ao app target
Isso permite que seu app seja ativado em background quando notificações push chegam.- Adicione a capability Background Modes
- Habilite Remote notifications

O app target recebe o modo de execução em background Remote Notifications.
3. Adicione app target ao App Group
App Groups permitem compartilhamento de dados entre seu app e a Notification Service Extension. Necessário para Entrega Confirmada e Badges.- Se você NÃO tem um App Group configurado
- Se você TEM um App Group
- Adicione a capability App Groups
- Na capability App Groups clique em +
- Adicione um novo container ID no formato:
group.your_bundle_id.onesignal
- Mantenha o prefixo group. e sufixo .onesignal. Substitua
your_bundle_idpelo bundle identifier do seu app. - Por exemplo, bundle identifier
com.onesignal.MyApp, terá o nome de containergroup.com.onesignal.MyApp.onesignal.

O app target faz parte do App Group.
4. Adicione Notification Service Extension
A Notification Service Extension (NSE) habilita notificações ricas e análises de Entrega Confirmada.- No Xcode: File > New > Target…
- Selecione Notification Service Extension, depois Next.
- Defina o nome do produto como
OneSignalNotificationServiceExtensione pressione Finish. - Pressione Don’t Activate no prompt Activate scheme.

Selecione o target Notification Service Extension.

Nomeie a Notification Service Extension.

Cancele a ativação para continuar debugando seu app target.

Defina o mesmo deployment target do app principal.
5. Adicione NSE target ao app group
Use o mesmo App Group ID que você adicionou no passo 3.- Vá para OneSignalNotificationServiceExtension > Signing & Capabilities
- Adicione App Groups
- Adicione exatamente o mesmo group ID
group.your_bundle_id.onesignal então certifique-se de adicionar seu App Group ID para ambos o App Target e o Info.plist do OneSignalNotificationServiceExtension Target! Veja o passo 3 para mais informações.
O NSE agora pertence ao mesmo app group que seu app target.
6. Atualize código NSE
- Navegue para a pasta OneSignalNotificationServiceExtension
- Substitua o conteúdo do arquivo
NotificationService.swiftouNotificationService.mpelo seguinte:

Navegue para seu arquivo NotificationService.

Este arquivo mostra um erro até você instalar o pacote no próximo passo.
7. Adicione OneSignal ao NSE target
Atualize seuios/Podfile para incluir:
Erros comuns do pod install
Você pode encontrar os seguintes erros, aqui está como você pode resolvê-los.ArgumentError - \[Xcodeproj] Unable to find compatibility version string for
object version `70`.
ArgumentError - \[Xcodeproj] Unable to find compatibility version string for object version `70`.
xcodeproj para ler seus arquivos de projeto Xcode. Até o momento, o lançamento mais recente do xcodeproj não reconhece a versão de objeto 70, que foi introduzida pelo Xcode 16. Então quando CocoaPods tenta abrir seu arquivo .xcodeproj, ele falha com este erro.- Feche o Xcode.
- Navegue para o arquivo
ios/<your-app>.xcodeproj/project.pbxprojdo seu projeto. - Mude esta linha:
objectVersion = 70; - Substitua por:
objectVersion = 55; - Salve, feche e execute novamente
cd ios pod install cd ..
Build para iOS
Você deve agora ser capaz de fazer build e executar seu app em um dispositivo iOS real ou simulador iOS (16.2+).Erros comuns de build iOS
Cycle Inside... building could produce unreliable results.
Cycle Inside... building could produce unreliable results.
- Abra sua pasta
.xcworkspaceno Xcode e navegue para your app target > Build Phases. - Você deve ter uma fase chamada “Embed Foundation Extensions” ou “Embed App Extensions”.
- Arraste e mova esta fase de build para acima de “Run Script”.
- Faça build e execute seu app. O erro deve ser resolvido.

Ordem correta das Build Phases no Xcode.

Desmarque Copy only when installing.
Erro PBXGroup
Erro PBXGroup
PBXGroup tentou inicializar um objeto com ISA desconhecido PBXFileSystemSynchronizedRootGroup dos atributos: {"isa"=>"...", "exceptions"=>["//", "..."], "explicitFileTypes"=>{}, "explicitFolders"=>[], "path"=>"OneSignalNotificationServiceExtension", "sourceTree"=>"<group>"}- Encontre a pasta listada sob “path” no erro
- Na barra lateral do projeto Xcode, clique com botão direito na pasta
- Selecione Convert to Group

Erro de path para PBXGroup.

Converta pasta para group.
Testando a integração do OneSignal SDK
Este guia ajuda você a verificar se sua integração do OneSignal SDK está funcionando corretamente testando notificações push, registro de inscrição e mensagens in-app.- Vá para Device Manager no Android Studio.
- Selecione seu dispositivo emulador e clique em Edit.
- Vá para Additional Settings ou More.
- Defina a Boot option para Cold Boot.
- Salve as alterações e reinicie o emulador.
Verifique inscrições mobile
Inicie seu app em um dispositivo de teste.
requestPermission durante a inicialização.
Prompts de permissão push iOS e Android
Verifique seu dashboard OneSignal
- Vá para Audience > Subscriptions.
- Você deve ver uma nova entrada com o status “Never Subscribed”.

Dashboard mostrando inscrição com status 'Never Subscribed'
Retorne ao app e toque em Allow no prompt.
Atualize a página de Subscription do dashboard OneSignal.

Dashboard mostrando inscrição com status 'Subscribed'
Configure inscrições de teste
Inscrições de teste são úteis para testar uma notificação push antes de enviar uma mensagem.Adicione a Test Subscriptions.

Adicionando um dispositivo a Test Subscriptions
Nomeie sua inscrição.

Dashboard mostrando o campo 'Name your subscription'
Crie um segmento de usuários de teste.
Nomeie o segmento.
Test Users (o nome é importante porque será usado depois).Adicione o filtro Test Users e clique em Create Segment.

Criando um segmento 'Test Users' com o filtro Test Users
Envie push de teste via API
Obtenha seu App API Key e App ID.
Atualize o código fornecido.
YOUR_APP_API_KEY e YOUR_APP_ID no código abaixo com suas chaves reais. Este código usa o segmento Test Users que criamos anteriormente.Execute o código.
Verifique imagens e entrega confirmada.

Notificação push com imagem no iOS e Android
Verifique por entrega confirmada.

Estatísticas de entrega mostrando entrega confirmada

Entrega confirmada a nível de dispositivo em Audience Activity
- Não recebeu imagem? Sua Notification Service Extension pode estar faltando.
- Sem entrega confirmada? Revise o guia de solução de problemas aqui.
- Tendo problemas? Copie e cole a requisição da api e um log do início ao fim do lançamento do app em um arquivo
.txt. Depois compartilhe ambos comsupport@onesignal.com.
Envie uma mensagem in-app
Mensagens in-app permitem que você se comunique com usuários enquanto eles estão usando seu app.Feche ou coloque em background seu app no dispositivo.
Crie uma mensagem in-app.
- No seu dashboard OneSignal, navegue para Messages > In-App > New In-App.
- Encontre e selecione a mensagem Welcome.
- Defina seu Público como o segmento Test Users que usamos anteriormente.

Direcionando o segmento 'Test Users' com uma mensagem in-app
Personalize o conteúdo da mensagem se desejar.

Exemplo de personalização da mensagem Welcome in-app
Defina Trigger como 'On app open'.
Agende frequência.

Opções de agendamento de mensagem in-app
Torne a mensagem ativa.
Abra o app e veja a mensagem.

Mensagem in-app Welcome mostrada em dispositivos
- Inicie uma nova sessão
- Você deve fechar ou colocar em background o app por pelo menos 30 segundos antes de reabrir. Isso garante que uma nova sessão seja iniciada.
- Para mais, veja como mensagens in-app são exibidas.
- Ainda no segmento
Test Users?- Se você reinstalou ou trocou de dispositivo, adicione novamente o dispositivo a Test Subscriptions e confirme que ele faz parte do segmento Test Users.
- Tendo problemas?
- Siga Obtendo um Debug Log enquanto reproduz os passos acima. Isso gerará logging adicional que você pode compartilhar com
support@onesignal.come nós ajudaremos a investigar o que está acontecendo.
- Siga Obtendo um Debug Log enquanto reproduz os passos acima. Isso gerará logging adicional que você pode compartilhar com
- Coletar Inscrições, configurar inscrições de teste e criar Segmentos.
- Enviar Push com imagens e Entrega Confirmada usando Segmentos e nossa API Create message.
- Enviar Mensagens in-app.
Identificação de usuário
Anteriormente, demonstramos como criar Inscrições móveis. Agora vamos expandir para identificar Usuários através de todas as suas inscrições (incluindo push, email e SMS) usando o OneSignal SDK. Cobriremos External IDs, tags, inscrições multicanal, privacidade e rastreamento de eventos para ajudá-lo a unificar e engajar usuários através de plataformas.Atribua External ID
Use um External ID para identificar usuários consistentemente através de dispositivos, endereços de email e números de telefone usando o identificador de usuário do seu backend. Isso garante que suas mensagens permaneçam unificadas através de canais e sistemas de terceiros (especialmente importante para Integrações). Defina o External ID com o métodologin do nosso SDK cada vez que eles são identificados pelo seu app.
Adicione data tags
Tags são pares chave-valor de dados string que você pode usar para armazenar propriedades de usuário (comousername, role ou preferências) e eventos (como purchase_date, game_level ou interações de usuário). Tags potencializam Personalização de Mensagem avançada e Segmentação permitindo casos de uso mais avançados.
Defina tags com os métodos addTag e addTags do nosso SDK conforme eventos ocorrem no seu app.
Neste exemplo, o usuário alcançou o nível 6 identificável pela tag chamada current_level definida com um valor de 6.

Um perfil de usuário no OneSignal com uma tag chamada "current_level" definida como "6"

Editor de segmento mostrando um segmento direcionado a usuários com um valor current_level maior que 4 e menor que 10

Captura de tela mostrando uma notificação push direcionada ao segmento Nível 5-10 com uma mensagem personalizada

A notificação push é recebida em um dispositivo iOS e Android com o conteúdo personalizado
Adicione inscrições de email e/ou SMS
Anteriormente vimos como nosso SDK cria inscrições móveis para enviar push e mensagens in-app. Você também pode alcançar usuários através de canais de email e SMS criando as inscrições correspondentes.- Use o método
addEmailpara criar inscrições de email. - Use o método
addSmspara criar inscrições de SMS.

Um perfil de usuário com inscrições push, email e SMS unificadas por External ID
- Obtenha consentimento explícito antes de adicionar inscrições de email ou SMS.
- Explique os benefícios de cada canal de comunicação aos usuários.
- Forneça preferências de canal para que usuários possam selecionar quais canais eles preferem.
Privacidade e consentimento do usuário
Para controlar quando OneSignal coleta dados de usuário, use os métodos de controle de consentimento do SDK:setConsentRequired(true): Previne coleta de dados até que consentimento seja dado.setConsentGiven(true): Habilita coleta de dados uma vez que consentimento é concedido.
Solicite permissões push
Em vez de chamarrequestPermission() imediatamente ao abrir o app, adote uma abordagem mais estratégica. Use uma mensagem in-app para explicar o valor das notificações push antes de solicitar permissão.
Para melhores práticas e detalhes de implementação, veja nosso guia Solicite permissões push.
Escute eventos de push, usuário e in-app
Use listeners do SDK para reagir a ações de usuário e mudanças de estado. O SDK fornece vários event listeners para você conectar. Veja nosso guia de referência do SDK para mais detalhes.Eventos de notificação push
addClickListener(): Detecte quando uma notificação é tocada. Útil para Deep Linking.addForegroundLifecycleListener(): Controle como notificações se comportam em foreground.
Mudanças de estado do usuário
addObserver()para estado do usuário: Detecte quando o External ID é definido.addPermissionObserver(): Rastreie a interação específica do usuário com o prompt de permissão push nativo.addObserver()para inscrição push: Rastreie quando o status de inscrição push muda.
Eventos de mensagem in-app
addClickListener(): Lide com ações de clique in-app. Ideal para deep linking ou rastreamento de eventos.addLifecycleListener(): Rastreie o ciclo de vida completo de mensagens in-app (exibida, clicada, descartada, etc.).
Configuração avançada e capacidades
Explore mais capacidades para melhorar sua integração:- 🔁 Migrando para OneSignal de outro serviço
- 🌍 Rastreamento de localização
- 🔗 Deep Linking
- 🔌 Integrações
- 🧩 Mobile Service Extensions
- 🛎️ Botões de ação
- 🌐 Mensagens multilíngues
- 🛡️ Verificação de Identidade
- 📊 Custom Outcomes
- 📲 Live Activities
Configuração e referência do Mobile SDK
Certifique-se de que você habilitou todos os recursos principais revisando o guia Configuração de mobile push. Para detalhes completos sobre métodos disponíveis e opções de configuração, visite a referência do Mobile SDK.support@onesignal.comPor favor inclua:- Detalhes do problema que você está enfrentando e passos para reproduzir se disponível
- Seu OneSignal App ID
- O External ID ou Subscription ID se aplicável
- A URL para a mensagem que você testou no Dashboard OneSignal se aplicável
- Quaisquer logs ou mensagens de erro relevantes