Sletning af konto i iOS-app: test flowet før Apple
Af Mehdi Azizi
Opdateret , 7 min.
Sletteknap, tilknyttede data, abonnement og nyt login: en konkret testplan, så du kan tjekke flowet, før appen sendes til App Review.
Knappen er ikke nok: du skal tjekke, hvad der forsvinder
Hvis din app lader folk oprette en konto, kræver Apple, at brugeren kan starte sletningen af den inde fra appen. En simpel deaktivering opfylder ikke kravet. Flowet skal være nemt at finde og forklare konsekvenserne. Hvis en del af det afsluttes på nettet, skal linket føre direkte til den relevante side. Kilde: Apple om sletning af konti.
Arbejdet stopper altså ikke ved en rød knap i indstillingerne. Du skal kortlægge dataene, udføre sletningen på serveren, håndtere fejl og tjekke, hvad brugeren ser bagefter. Denne guide giver en produktmæssig og teknisk testplan. Data, der er underlagt en opbevaringspligt, kræver en behandling, der passer til din virksomhed.
Start med et datakort
Lad os tage en fiktiv læsedagbogs-app. Den har en konto, en profil, private noter og forsidebilleder, som brugeren selv har tilføjet. Eksemplet nedenfor beskriver en plan, der skal tjekkes, ikke en sletning, der allerede er udført i en Devoria-app.
- Login-identitet: hvordan gør du kontoen ubrugelig efter sletningen?
- Profil og noter: hvilke rækker tilhører personen, og hvordan slettes de?
- Gemte billeder: hvilken proces fjerner filerne og deres referencer?
- Cache på telefonen: sletter skærmen de lokale data, når handlingen faktisk er lykkedes?
- Tredjepartstjenester: kræver data knyttet til kontoen en separat sletning?
- Data, der skal bevares: hvilke, på grund af hvilken forpligtelse, og hvordan informeres brugeren?
Kortet forhindrer, at du bagefter opdager, at et billede stadig er tilgængeligt, selvom brugerposten er væk. Det giver dig også de ting, du skal lede efter i dine tests.
Et overskueligt flow i fire tilstande
Her er et forslag til den fiktive app, som du kan tilpasse til de reelle konsekvenser i dit produkt:
- Kontoindstillinger. Et punkt med "Slet min konto" er altid tilgængeligt.
- Bekræftelse. Skærmen beskriver de berørte data og viser en annuller-handling, der er lige så forståelig som slette-handlingen.
- Behandling. Knappen forhindrer dobbelte anmodninger, og brugerfladen viser, at handlingen er i gang.
- Resultat. En bekræftet succes fører til den udloggede tilstand. En fejl viser en brugbar besked og en mulighed for at prøve igen, uden at påstå at kontoen er væk.
Hvis behandlingen tager tid, accepterer Apple et forsinket flow, så længe du informerer personen og bekræfter, når det er færdigt. Appen må ikke give indtryk af, at sletningen er afsluttet, når kun anmodningen er registreret. Den samme dokumentation fra Apple beskriver også tilfælde med ny godkendelse og undtagelser for stærkt regulerede brancher.
Det skal du forberede med Supabase
At slette en Auth-bruger beviser ikke i sig selv, at alle objekter i dit produkt er håndteret. Supabase forklarer blandt andet, at en bruger, der ejer Storage-objekter, ikke kan slettes, før det er løst. Dokumentationen nævner også, at sletning af en bruger ikke straks logger alle allerede udstedte JWT'er ud: deres gyldighed skal tænkes ind i designet. Kilde: brugeradministration i Supabase.
Lav derfor en serverproces, der tjekker anmoderens identitet og de ressourcer, vedkommende ejer. Stol ikke på et id, som telefonen frit sender, til at vælge den konto, der skal slettes. Administratorrettigheder bliver på serveren, som beskrevet i Supabases dokumentation om nøgler.
Ved en proces i flere trin skal du beslutte, hvad et nyt forsøg skal gøre, hvis første trin lykkedes og det næste fejlede. Hvis filerne fx allerede er fjernet, må en ny anmodning ikke fejle alene, fordi de mangler. Det er et scenarie, du skriver ned før testen, ikke en adfærd, du går ud fra.
Konto og abonnement: to separate tjek
En person kan slette sin konto, mens et Apple-abonnement fortsætter. Apple kræver, at du forklarer, hvad der sker med betalingen, og giver adgang til at administrere abonnementet. Sørg også for passende tilbagekaldelse af tokens, hvis du bruger Sign in with Apple. Punkterne er beskrevet i Apples retningslinjer om sletning.
I din testplan skal du derfor holde kontoens forsvinden, adgangen til betalt indhold og administrationen af abonnementet adskilt. Guiden abonnement eller engangskøb hjælper dig med at placere flowet i din forretningsmodel.
Testplanen, du kører på et test-build
Brug kun en testkonto og fiktive data. Notér build, enhed, observeret resultat og begrænsningerne ved hvert tjek.
- Annuller. Kontoen og dataene er stadig tilgængelige.
- Slet en konto med indhold. Sluttilstanden svarer til den annoncerede behandling, og de berørte data er faktisk fjernet.
- Slå netværket fra. Appen viser ikke en falsk succes.
- Prøv igen efter en delvis fejl. Anmodningen kan gennemføres uden at ramme andre data.
- Åbn en anden session. Gamle adgange håndteres efter den planlagte mekanisme.
- Opret en ny konto med samme adresse, hvis det er tilladt. De gamle private data dukker ikke op igen.
Føj disse cases til Devorias testskema. Følg guiden om TestFlight for at dele dem med testere. At der ingen fejlbeskeder er i konsollen, erstatter ikke et tjek af data og flow.
Forbered indsendelsen til App Review
Forklar i dine review-noter, hvor handlingen findes, og hvordan den testes. Hvis et trin afhænger af en tjeneste, så sørg for, at den kører under reviewet. Brug ikke noterne til at love en funktion, der endnu ikke findes i det indsendte build.
Siden app afvist af Apple hjælper dig med at strukturere et svar, når et problem allerede er rapporteret. Til forberedelsen hjælper Apple Review Kit dig med at finde den citerede regel, hvad den kræver, og et eksempel på en rettelse og et svar.
Forbereder du din første indsendelse, fortæller den gratis diagnose dig, hvad der mangler, og sender dig min tjekliste mod afvisning fra Apple, inklusive sletning af konto. Har Apple allerede afvist din app, så book en time med mig: vi læser beskeden sammen over video.
Ofte stillede spørgsmål
Er sletning af konto obligatorisk i en iOS-app?
Ja, hvis din app lader folk oprette en konto: Apple kræver, at brugeren kan starte sletningen inde fra appen. En simpel deaktivering opfylder ikke kravet. Flowet skal være nemt at finde og forklare konsekvenserne. Hvis en del afsluttes på nettet, skal linket føre direkte til den relevante side.
Hvad skal slettes, når en bruger sletter sin konto?
Alt, hvad der tilhører personen, ikke kun brugerposten. Lav en liste: login-identitet, profil og oprettet indhold, gemte filer og deres referencer, cache på telefonen, data hos tredjepartstjenester. Notér også de data, der skal bevares, på grund af hvilken forpligtelse, og informér personen. Uden denne oversigt kan et billede stadig være tilgængeligt, selvom brugerposten er væk.
Accepterer Apple en kontosletning, der ikke sker med det samme?
Ja. Hvis behandlingen tager tid, accepterer Apple et forsinket flow, så længe du informerer personen og bekræfter, når det er færdigt. Appen må ikke give indtryk af, at sletningen er afsluttet, når kun anmodningen er registreret. Ved fejl skal du vise en brugbar besked og en mulighed for at prøve igen, uden at påstå at kontoen er væk.
Hvad sker der med abonnementet, når brugeren sletter sin konto?
Apple-abonnementet kan fortsætte efter sletningen af kontoen. Apple kræver, at du forklarer, hvad der sker med betalingen, og giver adgang til at administrere abonnementet. Bruger du Sign in with Apple, skal du også sørge for passende tilbagekaldelse af tokens. Hold i din testplan kontoens forsvinden, adgangen til betalt indhold og administrationen af abonnementet adskilt.
Er det nok at slette brugeren i Supabase Auth?
Nej, sletning af en Auth-bruger beviser ikke, at alle objekter i dit produkt er håndteret. Ifølge Supabases dokumentation kan en bruger, der ejer Storage-objekter, ikke slettes, før det er løst. Sletning af en bruger logger heller ikke straks alle allerede udstedte JWT'er ud. Lav en serverproces, der tjekker anmoderens identitet.
Hvordan tester jeg kontosletning før indsendelsen til Apple?
Brug en testkonto og fiktive data på et test-build. Kør seks cases: annuller, slet en konto med indhold, slå netværket fra, prøv igen efter en delvis fejl, åbn en anden session, og opret en ny konto med samme adresse, hvis det er tilladt. Tjek data og flow: at der ingen fejl er i konsollen, er ikke nok. Følg guiden om TestFlight for at dele dit build.