# Account verwijderen in iOS-app: testen vóór App Review

> Verwijderknop, gekoppelde data, abonnement en opnieuw inloggen: een concreet testplan om deze flow te controleren voordat je naar App Review stuurt.

Originele pagina: [Account verwijderen in iOS-app: testen vóór App Review](https://devoria.fr/nl/blog/account-verwijderen-ios-app-testen-app-review)
Auteur: [Mehdi Azizi](https://devoria.fr/nl/mehdi-azizi)
Publicatie: 2026-10-02
Laatste inhoudsrevisie: 2026-10-09


## Een knop is niet genoeg: controleer wat er echt verdwijnt

Kun je in je app een account aanmaken? Dan eist Apple dat de gebruiker het verwijderen ervan vanuit de app kan starten. Alleen deactiveren voldoet niet aan die eis. De flow moet makkelijk te vinden zijn en de gevolgen uitleggen. Wordt een deel op het web afgerond, dan moet de link direct naar de juiste pagina gaan. [Bron: account verwijderen volgens Apple](https://developer.apple.com/support/offering-account-deletion-in-your-app).

Het werk stopt dus niet bij een rode knop in de instellingen. Je moet je data inventariseren, de verwijdering op de server uitvoeren, fouten afhandelen en controleren wat de gebruiker daarna ziet. Deze gids geeft een product- en technisch testplan. Data die je wettelijk moet bewaren, vraagt om een aanpak die past bij jouw situatie.

## Begin met een datakaart

Neem een fictieve leesdagboek-app. Die heeft een account, een profiel, privénotities en omslagfoto's die de gebruiker zelf toevoegt. Het voorbeeld hieronder is een plan om te controleren, geen verwijdering die al is uitgevoerd in een Devoria-app.

- **Login-identiteit:** hoe maak je het account onbruikbaar na de verwijdering?
- **Profiel en notities:** welke rijen horen bij deze persoon en hoe worden ze verwijderd?
- **Opgeslagen foto's:** welk proces verwijdert de bestanden en hun verwijzingen?
- **Cache op de telefoon:** wist het scherm de lokale data pas als de actie echt gelukt is?
- **Diensten van derden:** moet de data van dit account daar apart worden verwijderd?
- **Te bewaren data:** welke, voor welke verplichting, en hoe informeer je de gebruiker?

Met deze kaart ontdek je niet achteraf dat een foto nog bereikbaar is terwijl het gebruikersrecord al weg is. Je weet ook meteen naar welke objecten je in je tests moet zoeken.

## Een duidelijke flow in vier toestanden

Hier een voorstel voor de fictieve app. Pas het aan op de echte gevolgen van jouw product:

1. **Accountinstellingen.** Een optie "Account verwijderen" blijft bereikbaar.
2. **Bevestiging.** Het scherm beschrijft welke data het betreft en toont een annuleeractie die net zo duidelijk is als de verwijderactie.
3. **Verwerking.** De knop voorkomt dubbele verzoeken en de interface laat zien dat de actie bezig is.
4. **Resultaat.** Bij bevestigd succes kom je in de uitgelogde toestand. Bij een fout blijft er een nuttige melding en een manier om het opnieuw te proberen, zonder te doen alsof het account weg is.

Duurt de verwerking even? Apple accepteert een uitgestelde flow, zolang je de gebruiker informeert en de afronding bevestigt. De app mag niet suggereren dat een verwijdering klaar is als alleen het verzoek is geregistreerd. Dezelfde [documentatie van Apple](https://developer.apple.com/support/offering-account-deletion-in-your-app) beschrijft ook wanneer opnieuw authenticeren nodig is en welke uitzonderingen gelden voor sterk gereguleerde sectoren.

## Waar je op moet letten met Supabase

Een Auth-gebruiker verwijderen bewijst op zichzelf niet dat alle objecten van je product zijn afgehandeld. Supabase legt onder meer uit dat een gebruiker met Storage-objecten niet kan worden verwijderd zolang dat niet is opgelost. De documentatie meldt ook dat het verwijderen van een gebruiker niet direct alle al uitgegeven JWT's ongeldig maakt: met hun geldigheid moet je in je ontwerp rekening houden. [Bron: gebruikersbeheer in Supabase](https://supabase.com/docs/guides/auth/managing-user-data).

Bouw dus een serverproces dat de identiteit van de aanvrager controleert en kijkt welke resources van hem zijn. Vertrouw niet op een ID dat de telefoon zomaar meestuurt om te bepalen welk account weg moet. Beheerrechten blijven op de server, zoals de [documentatie over Supabase-keys](https://supabase.com/docs/guides/getting-started/api-keys) aangeeft.

Bestaat de verwerking uit meerdere stappen? Bepaal dan wat een nieuwe poging moet doen als stap één gelukt is en de volgende mislukt. Bijvoorbeeld: als de bestanden al weg zijn, mag een nieuw verzoek niet mislukken alleen omdat ze ontbreken. Dat scenario schrijf je uit vóór de test. Je gaat er niet zomaar van uit.

## Account en abonnement: twee aparte controles

Iemand kan zijn account verwijderen terwijl een Apple-abonnement doorloopt. Apple vraagt je uit te leggen wat er met de facturering gebeurt en toegang te geven tot het abonnementsbeheer. Regel ook het juist intrekken van tokens als je Sign in with Apple gebruikt. Deze punten staan uitgewerkt in de [richtlijnen van Apple over verwijderen](https://developer.apple.com/support/offering-account-deletion-in-your-app).

Scheid in je testplan dus het verdwijnen van het account, de status van betaalde toegang en het abonnementsbeheer. De gids [abonnement of eenmalige aankoop](https://devoria.fr/nl/blog/abonnement-of-eenmalige-aankoop-ios-app) helpt je deze flow in je verdienmodel te plaatsen.

## Het testplan voor een testbuild

Gebruik alleen een testaccount en fictieve data. Noteer per controle de build, het toestel, het resultaat en de beperkingen.

1. **Annuleren.** Account en data blijven bereikbaar.
2. **Een gevuld account verwijderen.** De eindtoestand klopt met de aangekondigde verwerking. De betreffende data is echt verwijderd.
3. **Netwerk uitzetten.** De app toont geen nep-succes.
4. **Opnieuw proberen na een gedeeltelijke fout.** Het verzoek kan slagen zonder andere data te raken.
5. **Een tweede sessie openen.** Oude toegang wordt afgehandeld volgens het geplande mechanisme.
6. **Een account aanmaken met hetzelfde adres, als dat mag.** Oude privédata komt niet terug.

Voeg deze gevallen toe aan het [Devoria-testraster](https://devoria.fr/nl/resources). Wil je ze aan testers geven, volg dan de gids over [TestFlight](https://devoria.fr/nl/blog/testflight-iphone-app-testen-voor-indienen). Geen foutmelding in de console vervangt niet het controleren van de data en de flow.

## Je inzending voor App Review voorbereiden

Leg in je review-notities uit waar de actie zit en hoe je die test. Hangt een stap af van een dienst, zorg dan dat die tijdens de review beschikbaar is. Gebruik de notities niet om een functie te beloven die nog niet in de ingestuurde build zit.

De pagina [app afgewezen door Apple](https://devoria.fr/nl/expertise/app-afgewezen-door-apple) helpt je een antwoord op te bouwen als er al een probleem is gemeld. Om dat voor te bereiden helpt de [Apple Review Kit](https://devoria.fr/nl/kits/review-apple) je de aangehaalde regel terug te vinden, wat die vraagt, en een voorbeeld van een fix en een antwoord.

Bereid je je eerste inzending voor? De [gratis diagnose](https://devoria.fr/nl/diagnostic) vertelt je wat er nog moet gebeuren en stuurt je mijn checklist tegen afwijzingen door Apple, inclusief accountverwijdering. Heeft Apple je app al afgewezen? [Boek een uur met mij](https://devoria.fr/nl/coaching): we lezen het bericht samen door, via een videogesprek.

## Veelgestelde vragen

### Is account verwijderen verplicht in een iOS-app?

Ja, als je in je app een account kunt aanmaken: Apple eist dat de gebruiker het verwijderen vanuit de app kan starten. Alleen deactiveren voldoet niet. De flow moet makkelijk te vinden zijn en de gevolgen uitleggen. Wordt een deel op het web afgerond, dan moet de link direct naar de juiste pagina gaan.

### Wat moet je verwijderen als een gebruiker zijn account verwijdert?

Alles wat van die persoon is, niet alleen het gebruikersrecord. Maak een lijst: login-identiteit, profiel en aangemaakte content, opgeslagen bestanden en hun verwijzingen, cache op de telefoon, data bij diensten van derden. Noteer ook welke data je bewaart, voor welke verplichting, en informeer de gebruiker. Zonder die inventaris kan een foto bereikbaar blijven terwijl het gebruikersrecord al weg is.

### Accepteert Apple een accountverwijdering die niet direct gebeurt?

Ja. Duurt de verwerking even, dan accepteert Apple een uitgestelde flow, zolang je de gebruiker informeert en de afronding bevestigt. De app mag niet suggereren dat de verwijdering klaar is als alleen het verzoek is geregistreerd. Gaat het mis, houd dan een nuttige melding en een manier om het opnieuw te proberen, zonder te doen alsof het account weg is.

### Wat gebeurt er met het abonnement als de gebruiker zijn account verwijdert?

Het Apple-abonnement kan doorlopen na het verwijderen van het account. Apple vraagt je uit te leggen wat er met de facturering gebeurt en toegang te geven tot het abonnementsbeheer. Gebruik je Sign in with Apple, regel dan ook het juist intrekken van tokens. Scheid in je testplan het verdwijnen van het account, de status van betaalde toegang en het abonnementsbeheer.

### Is het genoeg om de gebruiker in Supabase Auth te verwijderen?

Nee, een Auth-gebruiker verwijderen bewijst niet dat alle objecten van je product zijn afgehandeld. Volgens de documentatie van Supabase kan een gebruiker met Storage-objecten niet worden verwijderd zolang dat niet is opgelost. Een gebruiker verwijderen maakt ook niet direct alle al uitgegeven JWT's ongeldig. Bouw een serverproces dat de identiteit van de aanvrager controleert.

### Hoe test je accountverwijdering voordat je naar Apple instuurt?

Gebruik een testaccount en fictieve data op een testbuild. Voer zes gevallen uit: annuleren, een gevuld account verwijderen, het netwerk uitzetten, opnieuw proberen na een gedeeltelijke fout, een tweede sessie openen, een account aanmaken met hetzelfde adres als dat mag. Controleer de data en de flow: geen fout in de console is niet genoeg. Volg de gids over [TestFlight](https://devoria.fr/nl/blog/testflight-iphone-app-testen-voor-indienen) om je build te verspreiden.


## Je project

[Apple Review Kit](https://devoria.fr/nl/kits/review-apple): De App Store-reviewchecklist die ik gebruik, mijn opgeloste afwijzingen, de notities voor de tester en twee Claude Code-skills die je app nalezen. 29 €.

[iOS Kit](https://devoria.fr/nl/kits/ios): Maak je iPhone-app met Claude Code: de Starter Code van mijn apps, skills die zijn werk controleren, en de Apple Review Kit, App Store Screenshots Kit en ASO Kit. 129,99 €.
