Permissões
Push, Face ID e ATT. Cada uma aparece no momento certo, nunca tudo junto na Home.
O kit pede três permissões, cada uma no momento que faz sentido. Nunca todas de uma vez na Home.
| Permissão | Onde aparece | Soft prompt nosso? | Plataformas |
|---|---|---|---|
| Push | Onboarding ou botão na aba Notificações | Só no onboarding | iOS, Android |
| Face ID / biometria | Switch em Configurações | Não | iOS, Android |
| ATT (rastreamento) | Onboarding + Home (quem pula) | Sim | iOS apenas |
Push
- Quem completa o onboarding: vê a tela
OnboardingNotificationsStepcom explicação. Ao continuar, abre o diálogo nativo do sistema. - Quem pula o onboarding: nenhum prompt automático. O usuário toca na aba Notificações e, se a lista estiver vazia, vê o botão "Permitir notificações" → toca → abre o nativo. O clique já é a confirmação de intenção, então não tem soft prompt.
iOS e Android 13+ permitem mostrar o diálogo nativo uma única vez por instalação. Se o usuário negar, só dá para reativar em Configurações do sistema.
Quando o usuário nega e tenta reativar, o botão muda para "Abrir configurações" (ícone de engrenagem) e chama openAppSettings().
Face ID / Touch ID / Biometria
- Só é pedido quando o usuário liga o switch em Configurações.
- Ligar dispara autenticação nativa na hora.
- Se autenticar, o
BiometricGuardpassa a exigir autenticação ao abrir o app. - Sem soft prompt: o switch já é a confirmação.
A preferência biometric_enabled é por conta (limpa no logout). Assim o próximo usuário no mesmo device começa com a trava desligada.
ATT: App Tracking Transparency (iOS)
ATT é o prompt "Permitir que o app rastreie sua atividade" do iOS. A Apple permite mostrar o nativo apenas uma vez por instalação. Por isso usamos um soft prompt nosso antes.
- Quem completa o onboarding: vê
OnboardingAttSetupcom explicação. Ao continuar → abre o nativo do iOS. - Quem pula o onboarding: ao chegar na Home (após 1,5s) →
KasyDialogexplicando o rastreamento. Se aceitar o nosso → chamamos o nativo. Se recusar → NÃO chamamos o nativo (preservamos a única chance).
Retry do soft prompt
Quem recusar o soft prompt é perguntado de novo após 7 dias, por até 3 tentativas. Depois disso paramos. As flags ficam em SharedPreferences (att_soft_dismiss_count e att_soft_last_asked_at).
Android
ATT não existe no Android.
O que persiste no logout
| Configuração | Comportamento no logout |
|---|---|
| Permissão push (grant/denied) | Mantém (o SO controla) |
| Permissão ATT | Mantém (o SO controla) |
| Biometria do device | Mantém (o SO controla) |
biometric_enabled (switch do app) | Limpa (é por conta) |
Contadores ATT (att_soft_*) | Mantém (ATT é por device) |
Atualizado em 03/11/2026

