# Exclusão de conta no iOS: o fluxo para testar antes da Apple

> Botão de exclusão, dados associados, assinatura e novo login: um roteiro prático para testar esse fluxo antes de enviar para o App Review.

Página original: [Exclusão de conta no iOS: o fluxo para testar antes da Apple](https://devoria.fr/pt-br/blog/exclusao-de-conta-ios-fluxo-testar-apple)
Autor: [Mehdi Azizi](https://devoria.fr/pt-br/mehdi-azizi)
Publicação: 2026-10-02
Última revisão do conteúdo: 2026-10-09


## O botão não basta: você precisa verificar o que some

Se o seu app permite criar uma conta, a Apple exige que a pessoa consiga iniciar a exclusão dessa conta de dentro do app. Só desativar a conta não atende a essa exigência. O fluxo precisa ser fácil de encontrar e explicar as consequências. Se uma parte termina na Web, o link tem que levar direto para a página certa. [Fonte: exclusão de conta segundo a Apple](https://developer.apple.com/support/offering-account-deletion-in-your-app).

Então o trabalho não acaba num botão vermelho nos ajustes. Você precisa fazer o inventário dos dados, executar a exclusão no servidor, tratar os erros e verificar o que o usuário vê depois. Este guia propõe um roteiro de testes de produto e técnico. Os dados sujeitos a uma obrigação de retenção pedem um tratamento adequado à sua atividade.

## Comece por um mapa dos dados

Vamos pegar um app fictício de diário de leitura. Ele tem uma conta, um perfil, notas privadas e fotos de capa adicionadas pelo usuário. O exemplo abaixo descreve um plano a verificar, não uma exclusão já executada num app da Devoria.

- **Identidade de login:** como deixar a conta inutilizável depois da exclusão?
- **Perfil e notas:** quais linhas pertencem a essa pessoa e como elas são excluídas?
- **Fotos armazenadas:** qual processo remove os arquivos e as referências a eles?
- **Cache do celular:** a tela apaga os dados locais quando a operação realmente deu certo?
- **Serviços de terceiros:** os dados ligados a essa conta precisam de uma exclusão separada?
- **Dados a manter:** quais, por qual obrigação, e como o usuário é informado?

Esse mapa evita descobrir depois que uma foto continua acessível enquanto o registro do usuário já sumiu. Ele também te dá os itens que você vai procurar nos testes.

## Um fluxo claro em quatro estados

Aqui vai uma proposta para o app fictício, para adaptar às consequências reais do seu produto:

1. **Ajustes da conta.** Uma opção "Excluir minha conta" continua acessível.
2. **Confirmação.** A tela descreve os dados afetados e mostra uma opção de cancelar tão compreensível quanto a de excluir.
3. **Processamento.** O botão evita pedidos duplicados e a interface mostra que a operação está em andamento.
4. **Resultado.** Um sucesso confirmado leva ao estado deslogado. Uma falha mantém uma mensagem útil e um jeito de tentar de novo, sem fingir que a conta sumiu.

Se o processamento demora, a Apple aceita um fluxo adiado, desde que você informe a pessoa e confirme a conclusão. O app não pode dar a entender que a exclusão terminou quando só o pedido foi registrado. A mesma [documentação da Apple](https://developer.apple.com/support/offering-account-deletion-in-your-app) também detalha os casos de nova autenticação e as exceções para atividades altamente regulamentadas.

## O que antecipar com o Supabase

Excluir um usuário do Auth não prova, por si só, que todos os objetos do seu produto foram tratados. O Supabase explica, por exemplo, que um usuário que possui objetos no Storage não pode ser excluído enquanto isso não for resolvido. A documentação também avisa que excluir um usuário não desloga na hora todos os JWT já emitidos: a validade deles precisa entrar no seu design. [Fonte: gerenciamento de usuários no Supabase](https://supabase.com/docs/guides/auth/managing-user-data).

Então defina um processo no servidor que verifique a identidade de quem faz o pedido e os recursos que pertencem a essa pessoa. Não confie num identificador enviado livremente pelo celular para escolher qual conta excluir. Os direitos de administração ficam no servidor, como indica a [documentação das chaves do Supabase](https://supabase.com/docs/guides/getting-started/api-keys).

Para um processo em várias etapas, decida o que uma nova tentativa deve fazer se uma primeira etapa deu certo e a seguinte falhou. Por exemplo, se os arquivos já foram removidos, um novo pedido não deve falhar só porque eles não existem mais. É um cenário para escrever antes do teste, não um comportamento para supor.

## Conta e assinatura: duas verificações separadas

Uma pessoa pode excluir a conta enquanto uma assinatura da Apple continua ativa. A Apple pede que você explique o que acontece com a cobrança e dê acesso ao gerenciamento da assinatura. Preveja também a revogação adequada dos tokens se você usa Sign in with Apple. Esses pontos estão detalhados nas [orientações da Apple sobre exclusão](https://developer.apple.com/support/offering-account-deletion-in-your-app).

No seu plano de testes, separe então o desaparecimento da conta, o estado do acesso pago e o gerenciamento da assinatura. O guia [assinatura ou compra única](https://devoria.fr/pt-br/blog/assinatura-ou-compra-unica-app-ios) ajuda a encaixar esse fluxo no seu modelo de negócio.

## O roteiro para rodar numa build de teste

Use só uma conta de teste e dados fictícios. Anote a build, o aparelho, o resultado observado e os limites de cada verificação.

1. **Cancelar.** A conta e os dados continuam acessíveis.
2. **Excluir uma conta com dados.** O estado final corresponde ao processo anunciado; os dados afetados são realmente removidos.
3. **Cortar a rede.** O app não mostra um sucesso falso.
4. **Tentar de novo após uma falha parcial.** O pedido consegue concluir sem atingir outros dados.
5. **Abrir uma segunda sessão.** Os acessos antigos são tratados conforme o mecanismo previsto.
6. **Recriar uma conta com o mesmo e-mail, se permitido.** Os dados privados antigos não reaparecem.

Adicione esses casos à [checklist de testes da Devoria](https://devoria.fr/pt-br/resources). Para distribuir para testadores, siga o guia do [TestFlight](https://devoria.fr/pt-br/blog/testflight-como-testar-app-iphone-antes-envio). A ausência de mensagem de erro no console não substitui a verificação dos dados e do fluxo.

## Preparar o envio para o App Review

Nas suas notas para a revisão, explique onde fica a opção e como testá-la. Se uma etapa depende de um serviço, garanta que ele esteja disponível durante a revisão. Não use as notas para prometer uma função que ainda não existe na build enviada.

A página [app rejeitado pela Apple](https://devoria.fr/pt-br/expertise/app-recusado-pela-apple) ajuda a organizar uma resposta quando um problema já foi apontado. Para prepará-la, o [Apple Review Kit](https://devoria.fr/pt-br/kits/review-apple) te ajuda a encontrar a regra citada, o que ela exige, e um exemplo de correção e de resposta.

Se você está preparando seu primeiro envio, o [diagnóstico gratuito](https://devoria.fr/pt-br/diagnostic) te diz o que falta fazer e te manda minha checklist anti-rejeição da Apple, incluindo a exclusão de conta. Se a Apple já rejeitou seu app, [reserve uma hora comigo](https://devoria.fr/pt-br/coaching): a gente lê a mensagem juntos, por videochamada.

## Perguntas frequentes

### A exclusão de conta é obrigatória num app iOS?

Sim, se o seu app permite criar uma conta: a Apple exige que a pessoa consiga iniciar a exclusão de dentro do app. Só desativar a conta não atende a essa exigência. O fluxo precisa ser fácil de encontrar e explicar as consequências. Se uma parte termina na Web, o link tem que levar direto para a página certa.

### O que precisa ser excluído quando um usuário exclui a conta?

Tudo o que pertence à pessoa, não só o registro do usuário. Faça a lista: identidade de login, perfil e conteúdos criados, arquivos armazenados e suas referências, cache do celular, dados em serviços de terceiros. Anote também os dados a manter, por qual obrigação, e informe a pessoa. Sem esse inventário, uma foto pode continuar acessível enquanto o registro do usuário já sumiu.

### A Apple aceita uma exclusão de conta que não é imediata?

Sim. Se o processamento demora, a Apple aceita um fluxo adiado, desde que você informe a pessoa e confirme a conclusão. O app não pode dar a entender que a exclusão terminou quando só o pedido foi registrado. Em caso de falha, mantenha uma mensagem útil e um jeito de tentar de novo, sem fingir que a conta sumiu.

### O que acontece com a assinatura quando o usuário exclui a conta?

A assinatura da Apple pode continuar depois da exclusão da conta. A Apple pede que você explique o que acontece com a cobrança e dê acesso ao gerenciamento da assinatura. Se você usa Sign in with Apple, preveja também a revogação adequada dos tokens. No seu plano de testes, separe o desaparecimento da conta, o estado do acesso pago e o gerenciamento da assinatura.

### Basta excluir o usuário no Supabase Auth?

Não, excluir um usuário do Auth não prova que todos os objetos do seu produto foram tratados. Segundo a documentação do Supabase, um usuário que possui objetos no Storage não pode ser excluído enquanto isso não for resolvido. Excluir um usuário também não desloga na hora todos os JWT já emitidos. Preveja um processo no servidor que verifique a identidade de quem faz o pedido.

### Como testar a exclusão de conta antes de enviar para a Apple?

Use uma conta de teste e dados fictícios numa build de teste. Rode seis casos: cancelar, excluir uma conta com dados, cortar a rede, tentar de novo após uma falha parcial, abrir uma segunda sessão, recriar uma conta com o mesmo e-mail se for permitido. Verifique os dados e o fluxo: a ausência de erro no console não basta. Para distribuir sua build, siga o guia do [TestFlight](https://devoria.fr/pt-br/blog/testflight-como-testar-app-iphone-antes-envio).


## Seu projeto

[Apple Review Kit](https://devoria.fr/pt-br/kits/review-apple): A checklist de review da App Store que eu uso, minhas rejeições da Apple corrigidas, as notas para o revisor e duas skills do Claude Code que revisam seu app. 29 €.

[iOS Kit](https://devoria.fr/pt-br/kits/ios): Crie seu app de iPhone com Claude Code: o código inicial dos meus apps, as skills que verificam o trabalho dele e os kits Apple Review, App Store Screenshots e ASO. 129,99 €.
