# Kontosletting i iOS-app: test flyten før Apple

> Sletteknapp, tilknyttede data, abonnement og ny innlogging: en konkret testplan for å sjekke flyten før du sender appen til App Review.

Opprinnelig side: [Kontosletting i iOS-app: test flyten før Apple](https://devoria.fr/no/blog/kontosletting-ios-app-test-for-apple)
Forfatter: [Mehdi Azizi](https://devoria.fr/no/mehdi-azizi)
Publisert: 2026-10-02
Innhold sist revidert: 2026-10-09


## Knappen er ikke nok: du må sjekke hva som faktisk forsvinner

Hvis appen din lar folk opprette en konto, krever Apple at brukeren kan starte slettingen fra appen. Å bare deaktivere kontoen oppfyller ikke kravet. Flyten skal være lett å finne og forklare hva som skjer. Hvis en del av prosessen fullføres på nettet, skal lenken gå rett til den aktuelle siden. [Kilde: Apple om kontosletting](https://developer.apple.com/support/offering-account-deletion-in-your-app).

Jobben stopper altså ikke ved en rød knapp i innstillingene. Du må kartlegge dataene, utføre slettingen på serveren, håndtere feil og sjekke hva brukeren ser etterpå. Denne guiden gir deg en produkt- og teknisk testplan. Data som er underlagt en oppbevaringsplikt, må håndteres på en måte som passer for virksomheten din.

## Start med et kart over dataene

Ta en tenkt lesedagbok-app. Den har en konto, en profil, private notater og omslagsbilder som brukeren har lagt til. Eksempelet under beskriver en plan som må sjekkes, ikke en sletting som allerede er utført i en Devoria-app.

- **Innloggingsidentitet:** hvordan gjør du kontoen ubrukelig etter slettingen?
- **Profil og notater:** hvilke rader tilhører denne personen, og hvordan slettes de?
- **Lagrede bilder:** hvilken prosess fjerner filene og referansene til dem?
- **Cache på telefonen:** sletter skjermen de lokale dataene når operasjonen faktisk har gått gjennom?
- **Tredjepartstjenester:** må data knyttet til denne kontoen slettes separat?
- **Data som skal beholdes:** hvilke, for hvilken plikt, og hvordan informeres brukeren?

Dette kartet hindrer at du i ettertid oppdager at et bilde fortsatt er tilgjengelig selv om brukeroppføringen er borte. Det gir deg også objektene du skal lete etter i testene.

## En tydelig flyt i fire tilstander

Her er et forslag for den tenkte appen. Tilpass det til de faktiske konsekvensene i produktet ditt:

1. **Kontoinnstillinger.** Et valg som «Slett kontoen min» er alltid tilgjengelig.
2. **Bekreftelse.** Skjermen beskriver hvilke data det gjelder og viser en avbryt-handling som er like forståelig som slette-handlingen.
3. **Behandling.** Knappen hindrer doble forespørsler, og grensesnittet viser at operasjonen pågår.
4. **Resultat.** Når suksessen er bekreftet, åpnes utlogget tilstand. Ved feil vises en nyttig melding og en måte å prøve igjen på, uten å påstå at kontoen er borte.

Hvis behandlingen tar tid, godtar Apple en utsatt flyt, så lenge du informerer brukeren og bekrefter når den er fullført. Appen skal ikke gi inntrykk av at slettingen er ferdig når bare forespørselen er registrert. Den samme [dokumentasjonen fra Apple](https://developer.apple.com/support/offering-account-deletion-in-your-app) beskriver også når ny autentisering kreves, og unntakene for sterkt regulerte virksomheter.

## Dette må du planlegge med Supabase

Å slette en Auth-bruker beviser ikke i seg selv at alle objektene i produktet ditt er håndtert. Supabase forklarer blant annet at en bruker som eier Storage-objekter ikke kan slettes før dette er løst. Dokumentasjonen påpeker også at sletting av en bruker ikke umiddelbart logger ut alle JWT-er som allerede er utstedt: gyldigheten deres må tas med i designet. [Kilde: brukerhåndtering i Supabase](https://supabase.com/docs/guides/auth/managing-user-data).

Lag derfor en serverprosess som sjekker identiteten til den som ber om slettingen, og hvilke ressurser som tilhører vedkommende. Ikke stol på en ID som telefonen sender fritt for å velge hvilken konto som skal slettes. Administratorrettighetene blir på serveren, i tråd med [dokumentasjonen om Supabase-nøkler](https://supabase.com/docs/guides/getting-started/api-keys).

For en prosess i flere steg må du bestemme hva et nytt forsøk skal gjøre hvis første steg lyktes og det neste feilet. Hvis filene for eksempel allerede er fjernet, skal ikke en ny forespørsel feile bare fordi de mangler. Dette er et scenario du skriver ned før testen, ikke en oppførsel du antar.

## Konto og abonnement: to separate sjekker

En person kan slette kontoen sin mens et Apple-abonnement fortsatt løper. Apple krever at du forklarer hva som skjer med faktureringen, og gir tilgang til å administrere abonnementet. Sørg også for riktig tilbakekalling av tokens hvis du bruker Sign in with Apple. Disse punktene er beskrevet i [Apples retningslinjer for sletting](https://developer.apple.com/support/offering-account-deletion-in-your-app).

I testplanen din skiller du derfor mellom at kontoen forsvinner, status for betalt tilgang og administrasjon av abonnementet. Guiden [abonnement eller engangskjøp](https://devoria.fr/no/blog/abonnement-eller-engangskjop-ios-app) hjelper deg å plassere denne flyten i forretningsmodellen din.

## Testplanen du kjører på en testbuild

Bruk bare en testkonto og fiktive data. Noter build, enhet, observert resultat og begrensningene for hver sjekk.

1. **Avbryt.** Kontoen og dataene er fortsatt tilgjengelige.
2. **Slett en konto med innhold.** Sluttilstanden stemmer med prosessen som er beskrevet, og de aktuelle dataene er faktisk fjernet.
3. **Slå av nettverket.** Appen viser ikke en falsk suksess.
4. **Prøv igjen etter en delvis feil.** Forespørselen kan gå gjennom uten å treffe andre data.
5. **Åpne en ny økt.** Gamle tilganger håndteres slik mekanismen er laget for.
6. **Opprett en ny konto med samme adresse, hvis det er tillatt.** De gamle private dataene dukker ikke opp igjen.

Legg disse tilfellene til i [Devorias testskjema](https://devoria.fr/no/resources). For å distribuere dem til testere, følg guiden om [TestFlight](https://devoria.fr/no/blog/testflight-teste-iphone-app-for-innsending). At konsollen ikke viser noen feilmelding, erstatter ikke en sjekk av dataene og flyten.

## Forbered innsendingen til App Review

I review-notatene forklarer du hvor handlingen ligger og hvordan den testes. Hvis et steg er avhengig av en tjeneste, sørg for at den er tilgjengelig under gjennomgangen. Ikke bruk notatene til å love en funksjon som ennå ikke finnes i builden du sender inn.

Siden [app avvist av Apple](https://devoria.fr/no/expertise/app-avvist-av-apple) hjelper deg å organisere et svar når et problem allerede er meldt. For å forberede svaret hjelper [Apple Review Kit](https://devoria.fr/no/kits/review-apple) deg å finne regelen som siteres, hva den krever, og et eksempel på rettelse og svar.

Hvis du forbereder din første innsending, forteller den [gratis diagnosen](https://devoria.fr/no/diagnostic) deg hva som gjenstår, og sender deg sjekklisten min mot avvisning fra Apple, kontosletting inkludert. Hvis Apple allerede har avvist appen din, [book en time med meg](https://devoria.fr/no/coaching): vi leser meldingen sammen på video.

## Ofte stilte spørsmål

### Er kontosletting obligatorisk i en iOS-app?

Ja, hvis appen lar folk opprette en konto: Apple krever at brukeren kan starte slettingen fra appen. Å bare deaktivere kontoen oppfyller ikke kravet. Flyten skal være lett å finne og forklare hva som skjer. Hvis en del fullføres på nettet, skal lenken gå rett til den aktuelle siden.

### Hva må slettes når en bruker sletter kontoen sin?

Alt som tilhører personen, ikke bare brukeroppføringen. Lag en liste: innloggingsidentitet, profil og opprettet innhold, lagrede filer og referansene til dem, cache på telefonen, data hos tredjepartstjenester. Noter også data som skal beholdes, for hvilken plikt, og informer brukeren. Uten denne oversikten kan et bilde fortsatt være tilgjengelig selv om brukeroppføringen er borte.

### Godtar Apple en kontosletting som ikke skjer umiddelbart?

Ja. Hvis behandlingen tar tid, godtar Apple en utsatt flyt, så lenge du informerer brukeren og bekrefter når den er fullført. Appen skal ikke gi inntrykk av at slettingen er ferdig når bare forespørselen er registrert. Ved feil viser du en nyttig melding og en måte å prøve igjen på, uten å påstå at kontoen er borte.

### Hva skjer med abonnementet når brukeren sletter kontoen?

Apple-abonnementet kan fortsette etter at kontoen er slettet. Apple krever at du forklarer hva som skjer med faktureringen, og gir tilgang til å administrere abonnementet. Hvis du bruker Sign in with Apple, må du også sørge for riktig tilbakekalling av tokens. I testplanen skiller du mellom at kontoen forsvinner, status for betalt tilgang og administrasjon av abonnementet.

### Holder det å slette brukeren i Supabase Auth?

Nei, å slette en Auth-bruker beviser ikke at alle objektene i produktet ditt er håndtert. Ifølge Supabase-dokumentasjonen kan en bruker som eier Storage-objekter ikke slettes før dette er løst. Sletting av en bruker logger heller ikke umiddelbart ut alle JWT-er som allerede er utstedt. Lag en prosess på serveren som sjekker identiteten til den som ber om slettingen.

### Hvordan tester jeg kontosletting før innsending til Apple?

Bruk en testkonto og fiktive data på en testbuild. Kjør seks tilfeller: avbryt, slett en konto med innhold, slå av nettverket, prøv igjen etter en delvis feil, åpne en ny økt, opprett en ny konto med samme adresse hvis det er tillatt. Sjekk dataene og flyten: at konsollen ikke viser feil, er ikke nok. For å distribuere builden din, følg guiden om [TestFlight](https://devoria.fr/no/blog/testflight-teste-iphone-app-for-innsending).


## Prosjektet ditt

[Apple Review Kit](https://devoria.fr/no/kits/review-apple): Sjekklisten jeg bruker for App Store-review, Apple-avslagene mine med rettelser, testernotater og to Claude Code-skills som gjennomgår appen din. 29 €.

[iOS Kit](https://devoria.fr/no/kits/ios): Lag iPhone-appen din med Claude Code: startkoden til appene mine, skills som sjekker arbeidet, og Apple Review Kit, App Store Screenshots Kit og ASO Kit. 129,99 €.
