
AppboyKit (também conhecido como o SDK Objective-C) não é mais suportado e foi substituído pelo Swift SDK. Não receberá mais novos recursos, correções de bugs, atualizações de segurança ou suporte técnico—no entanto, o envio de mensagens e a análise de dados continuarão a funcionar normalmente. Para saber mais, veja Apresentando o novo SDK Swift da Braze.
Solução de problemas
Entendendo o fluxo de trabalho Braze/APNs
O serviço de Notificações por Push da Apple (APN) é a infraestrutura da Apple para o envio de notificações por push para aplicativos iOS e OS X. Veja a seguir a estrutura simplificada de como as notificações por push são ativadas para os dispositivos dos seus usuários e como a Braze pode enviar notificações por push para eles:
- Você configura o certificado push e o perfil de provisionamento
- Os dispositivos se registram no APNs e fornecem à Braze os tokens por push
- Você lança uma Campaign de push na Braze
- A Braze remove os tokens inválidos
Etapa 1: Configurando o certificado de push e o perfil de provisionamento
Ao desenvolver seu app, crie um certificado SSL para ativar as notificações por push. Esse certificado é incluído no perfil de provisionamento com o qual seu app é compilado e também deve ser enviado para o dashboard da Braze. O certificado permite que a Braze informe ao APN que estamos autorizados a enviar notificações por push em seu nome.
Existem dois tipos de perfis de provisionamento e certificados: desenvolvimento e distribuição. Recomendamos usar apenas perfis e certificados de distribuição para evitar qualquer confusão. Se você optar por usar perfis e certificados diferentes para desenvolvimento e distribuição, certifique-se de que o certificado enviado ao dashboard corresponda ao perfil de provisionamento que você está usando atualmente.

Não altere o ambiente do certificado de push (desenvolvimento versus produção). Alterar o certificado de push para o ambiente errado pode fazer com que seus usuários tenham o token por push removido acidentalmente, tornando-os inacessíveis por push.
Etapa 2: Os dispositivos se registram no APN e fornecem tokens por push à Braze
Quando os usuários abrem seu app, eles recebem uma solicitação para aceitar notificações por push. Se aceitarem, o APN gerará um token por push para aquele dispositivo específico. O SDK para iOS enviará imediatamente e de forma assíncrona o token por push para apps que utilizam a política de envio automático padrão. Depois que tivermos um token por push associado a um usuário, ele aparecerá como “Push Registered” no dashboard, no perfil do usuário, na guia Engajamento, e será elegível para receber notificações por push de Campaigns da Braze.

A partir do Xcode 14, você pode testar notificações por push remotas em um simulador iOS.
Etapa 3: Lançando uma Campaign de push na Braze
Quando uma Campaign de push é lançada, a Braze faz solicitações ao APN para entregar sua mensagem. A Braze usará o certificado SSL de push enviado no dashboard para autenticar e verificar que estamos autorizados a enviar notificações por push para os tokens por push fornecidos. Se o dispositivo estiver online, a notificação deverá ser recebida logo após o envio da Campaign. A Braze define a data de expiração padrão do APN para notificações como 30 dias.
Etapa 4: Removendo tokens inválidos
Se o APN nos informar que algum dos tokens por push para os quais estávamos tentando enviar uma mensagem é inválido, removemos esses tokens dos perfis de usuário aos quais estavam associados.
Revisar erros de push
A Observabilidade de Mensagens mostra por que um push de uma Campaign ou Canvas não foi enviado, incluindo erros retornados pelo serviço de Notificações por Push da Apple (APN).
Erros comuns incluem notificações específicas do usuário, como “Received Unregistered Sending to Push Token”.
Além disso, a Braze também fornece um changelog de push no perfil de usuário, na guia Engajamento. Esse changelog oferece informações sobre o comportamento de registro de push, como invalidação de tokens, erros de registro de push, tokens sendo movidos para novos usuários, etc.

Problemas de registro de push
Para adicionar verificação à lógica de registro de push do seu aplicativo, implemente testes unitários de push.
Nenhum prompt de registro de push
Se o aplicativo não solicita o registro para notificações por push, provavelmente há um problema com a integração do registro de push. Certifique-se de ter seguido nossa documentação e integrado corretamente o registro de push. Você também pode definir breakpoints no seu código para garantir que o código de registro de push está sendo executado.
Nenhum usuário com “push registrado” aparecendo no dashboard
- Verifique se o app está solicitando a permissão para notificações por push. Normalmente, esse prompt aparece na primeira abertura do app, mas pode ser programado para aparecer em outro momento. Se não aparecer onde deveria, o problema provavelmente está na configuração básica das capacidades de push do app.
- Verifique se as etapas da integração de push foram concluídas com sucesso.
- Verifique se o perfil de provisionamento usado para compilar o app inclui permissões para push. Certifique-se de estar baixando todos os perfis de provisionamento disponíveis da sua conta de desenvolvedor da Apple. Para confirmar, siga estas etapas:
- No Xcode, navegue até Preferences > Accounts (ou use o atalho de teclado Command+,).
- Selecione o Apple ID que você usa para a conta de desenvolvedor e clique em View Details.
- Na próxima página, clique em Refresh e confirme que está baixando todos os perfis de provisionamento disponíveis.
- Verifique se você ativou corretamente a capacidade de push no app.
- Verifique se o perfil de provisionamento de push corresponde ao ambiente em que você está testando. Certificados universais podem ser configurados no dashboard da Braze para enviar ao ambiente de APN de desenvolvimento ou de produção. Usar um certificado de desenvolvimento para um app de produção ou um certificado de produção para um app de desenvolvimento não funcionará.
- Verifique se você está chamando o método
registerPushTokendefinindo um breakpoint no seu código. - Verifique se você está em um dispositivo (push não funciona em simuladores) e possui boa conectividade de rede.
Dispositivos que não recebem notificações por push
Usuários deixam de estar “registrados para push” após o envio de uma notificação por push
Isso provavelmente indica que o usuário tinha um token por push inválido. Isso pode acontecer por vários motivos:
Incompatibilidade entre o certificado do dashboard e do app
Se o certificado de push que você carregou no dashboard não for o mesmo do perfil de provisionamento com o qual seu app foi compilado, o APN rejeitará o token. Verifique se você carregou o certificado correto e concluiu outra sessão no app antes de tentar outra notificação de teste.
Desinstalações
Se um usuário desinstalou seu app, o token por push dele será inválido e removido no próximo envio.
Regeneração do perfil de provisionamento
Como último recurso, começar do zero e criar um novo perfil de provisionamento pode resolver erros de configuração que surgem ao trabalhar com múltiplos ambientes, perfis e apps ao mesmo tempo. Existem muitas “peças móveis” na configuração de notificações por push para apps iOS, então, às vezes, é melhor tentar novamente desde o início. Isso também ajudará a isolar o problema caso você precise continuar a solução de problemas.
Usuários ainda “registrados para push” após o envio de uma notificação por push
O app está em primeiro plano
Nas versões do iOS que não integram push pelo framework UserNotifications, se o app estiver em primeiro plano quando a mensagem de push for recebida, ela não será exibida. Você deve colocar o app em segundo plano nos seus dispositivos de teste antes de enviar mensagens de teste.
Notificação de teste agendada incorretamente
Verifique o cronograma que você definiu para sua mensagem de teste. Se estiver configurado para entrega no fuso local ou Intelligent Timing, pode ser que você simplesmente ainda não tenha recebido a mensagem (ou o app estava em primeiro plano quando ela foi recebida).
Usuário não está “registrado para push” para o app sendo testado
Verifique o perfil do usuário para o qual você está tentando enviar uma mensagem de teste. Na guia Engajamento, deve haver uma lista de “apps com push habilitado”. Verifique se o app para o qual você está tentando enviar mensagens de teste está nessa lista. Os usuários aparecerão como “Registrado para push” se tiverem um token por push para qualquer app no seu espaço de trabalho, então isso pode ser um falso positivo.
O exemplo a seguir indicaria um problema com o registro de push ou que o token do usuário foi retornado à Braze como inválido pelo APN após o envio:

Notificações por push não estão sendo enviadas
Para solucionar problemas de notificações por push que não estão sendo enviadas, consulte Solução de problemas de push.
Erros de notificação por push
Envio recebido não registrado para token por push
- Certifique-se de que o token por push enviado à Braze pelo método
[[Appboy sharedInstance] registerPushToken:]seja válido. Verifique o erro da Campaign ou do Canvas em Messaging Observability. O token deve se parecer com algo como6e407a9be8d07f0cdeb9e724733a89445f57a89ec890d63867c482a483506fa6, uma string longa contendo uma mistura de letras e números. Se o seu token por push parecer diferente, verifique seu código para enviar os tokens por push à Braze. - Confirme que o perfil de provisionamento de push corresponde ao ambiente em que você está testando. Certificados universais podem ser configurados no dashboard da Braze para enviar ao ambiente de APNs de desenvolvimento ou de produção. Usar um certificado de desenvolvimento para um app de produção ou um certificado de produção para um app de desenvolvimento não funcionará.
- Verifique se o token por push que você enviou à Braze corresponde ao perfil de provisionamento usado para compilar o app de onde o token por push foi enviado.
Device token not for topic
Esse erro indica que o certificado de push do seu app e o bundle ID não correspondem. Verifique se o certificado de push enviado à Braze corresponde ao perfil de provisionamento usado para compilar o app de onde o token por push foi enviado.
BadDeviceToken ao enviar para token por push
O BadDeviceToken é um código de erro do APNs e não é originado pela Braze. Pode haver vários motivos para essa resposta ser retornada, incluindo os seguintes:
- O app recebeu um token por push que era inválido para as credenciais carregadas no dashboard.
- O push foi desativado para este espaço de trabalho.
- O usuário optou por não receber push.
- O app foi desinstalado.
- A Apple atualizou o token por push, o que invalidou o token antigo.
- O app foi criado para um ambiente de produção, mas as credenciais de push carregadas na Braze estão configuradas para um ambiente de desenvolvimento (ou vice-versa).
Problemas após a entrega de push
Para adicionar verificação ao tratamento de push do seu aplicativo, implemente testes unitários de push.
Cliques em push não são registrados
- Se isso está ocorrendo apenas no iOS 10, verifique se você seguiu as etapas de integração de push para o iOS 10.
- A Braze não trata notificações por push recebidas silenciosamente em primeiro plano (por exemplo, o comportamento padrão de push em primeiro plano antes do framework
UserNotifications). Isso significa que os links não serão abertos e os cliques em push não serão registrados. Se o seu aplicativo ainda não integrou o frameworkUserNotifications, a Braze não tratará notificações por push quando o estado do aplicativo forUIApplicationStateActive. Você deve garantir que seu app não atrase as chamadas aos nossos métodos de tratamento de push; caso contrário, o SDK para iOS pode tratar as notificações por push como eventos silenciosos de push em primeiro plano e não processá-las.
Links da web a partir de cliques em push não abrem
O iOS 9+ exige que os links sejam compatíveis com ATS para serem abertos em web views. Verifique se seus links da web usam HTTPS. Consulte nosso artigo sobre conformidade com ATS para saber mais.
Deep links a partir de cliques em push não abrem
A maior parte do código que trata deep links também trata aberturas de push. Primeiro, verifique se as aberturas de push estão sendo registradas. Caso contrário, corrija esse problema (pois a correção geralmente também resolve o tratamento de links).
Se as aberturas estão sendo registradas, verifique se o problema é com o deep link em geral ou com o tratamento de deep link ao clicar em push. Para isso, teste se um deep link a partir do clique em uma mensagem no app funciona.
Poucas ou nenhuma Abertura Direta
Se pelo menos um usuário abrir sua notificação por push no iOS, mas poucas ou nenhuma Abertura Direta for registrada na Braze, pode haver um problema com a sua integração SDK. Lembre-se de que Aberturas Diretas não são registradas para envios de teste ou notificações por push silenciosas.
- Verifique se as mensagens não estão sendo enviadas como notificações por push silenciosas. A mensagem deve ter texto no título ou no corpo para não ser considerada silenciosa.
- Verifique novamente as seguintes etapas do guia de integração de push:
- Registrar para push: Em cada inicialização do app, preferencialmente dentro de
application:didFinishLaunchingWithOptions:, o código da etapa 3 precisa ser executado. A propriedade delegate deUNUserNotificationCenter.current()precisa ser atribuída a um objeto que implementeUNUserNotificationCenterDelegatee contenha o método(void)userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:. - Ativar o tratamento de push: Verifique se o método
(void)userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:foi implementado.
- Registrar para push: Em cada inicialização do app, preferencialmente dentro de
Cliques em imagens de Push Story não fazem nada
Esta seção se aplica à integração de Push Story do SDK Objective-C. Se você usa o módulo BrazePushStory do SDK Swift, defina UNNotificationExtensionUserInteractionEnabled como YES. Consulte Push Stories.
Se tocar em uma imagem de Push Story não abrir a ação esperada, abra o Info.plist da Notification Content Extension e verifique se as chaves correspondem à configuração de Push Story:
UNNotificationExtensionCategory=ab_cat_push_story_v2UNNotificationExtensionDefaultContentHidden=YESUNNotificationExtensionInitialContentSizeRatio=0.65
Se UNNotificationExtensionUserInteractionEnabled estiver nesse plist, remova-o. A configuração de Push Story para Objective-C não inclui essa chave.