Odstránenie účtu v iOS appke: čo otestovať pred Apple
Autor: Mehdi Azizi
Aktualizované , 7 min
Tlačidlo na odstránenie, súvisiace dáta, predplatné a opätovné prihlásenie: konkrétny postup, ako to otestovať pred odoslaním na App Review.
Tlačidlo nestačí: treba overiť, čo naozaj zmizne
Ak tvoja appka umožňuje vytvoriť účet, Apple vyžaduje, aby človek mohol jeho odstránenie spustiť priamo z appky. Obyčajná deaktivácia túto požiadavku nesplní. Postup musí byť ľahko nájditeľný a musí vysvetliť svoje dôsledky. Ak sa časť dokončuje na webe, odkaz musí viesť priamo na príslušnú stránku. Zdroj: odstránenie účtu podľa Apple.
Práca teda nekončí červeným tlačidlom v nastaveniach. Treba zinventarizovať dáta, vykonať odstránenie na strane servera, ošetriť chyby a overiť, čo používateľ uvidí potom. Tento návod ponúka produktový a technický testovací postup. Dáta, na ktoré sa vzťahuje povinnosť uchovávania, si vyžadujú riešenie prispôsobené tvojej činnosti.
Začni mapou dát
Zoberme si fiktívnu appku na čitateľský denník. Má účet, profil, súkromné poznámky a fotky obálok, ktoré pridal používateľ. Príklad nižšie popisuje plán na overenie, nie odstránenie, ktoré už bolo vykonané v niektorej appke Devoria.
- Prihlasovacia identita: ako zabezpečiť, aby bol účet po odstránení nepoužiteľný?
- Profil a poznámky: ktoré riadky patria tomuto človeku a ako sa odstránia?
- Uložené fotky: aký proces odstráni súbory aj odkazy na ne?
- Cache v telefóne: vymaže obrazovka lokálne dáta, keď operácia naozaj prebehla?
- Služby tretích strán: vyžadujú dáta naviazané na tento účet samostatné odstránenie?
- Dáta na uchovanie: ktoré, kvôli akej povinnosti a ako o tom informuješ používateľa?
Táto mapa ti ušetrí nepríjemné zistenie, že fotka je stále dostupná, hoci záznam používateľa zmizol. Zároveň ti dá zoznam objektov, ktoré máš v testoch hľadať.
Prehľadný postup v štyroch stavoch
Tu je návrh pre fiktívnu appku, ktorý si prispôsob skutočným dôsledkom svojho produktu:
- Nastavenia účtu. Položka „Odstrániť účet“ je stále dostupná.
- Potvrdenie. Obrazovka popisuje dotknuté dáta a ponúka zrušenie, ktoré je rovnako zrozumiteľné ako samotné odstránenie.
- Spracovanie. Tlačidlo zabraňuje dvojitým požiadavkám a rozhranie ukazuje, že operácia prebieha.
- Výsledok. Potvrdený úspech otvorí odhlásený stav. Pri zlyhaní zostane užitočná správa a možnosť skúsiť to znova, bez tvrdenia, že účet zmizol.
Ak spracovanie trvá dlhšie, Apple akceptuje odložený postup, pokiaľ človeka informuješ a dokončenie mu potvrdíš. Appka nesmie budiť dojem, že odstránenie je hotové, keď bola iba zaznamenaná požiadavka. Tá istá dokumentácia Apple rieši aj prípady opätovného overenia a výnimky pre silne regulované činnosti.
Na čo myslieť pri Supabase
Odstránenie používateľa v Auth samo osebe nedokazuje, že všetky objekty tvojho produktu boli spracované. Supabase okrem iného vysvetľuje, že používateľa, ktorý vlastní objekty v Storage, nie je možné odstrániť, kým sa to nevyrieši. Dokumentácia tiež upozorňuje, že odstránenie používateľa okamžite neodhlási všetky už vydané JWT: s ich platnosťou musíš v návrhu počítať. Zdroj: správa používateľov v Supabase.
Navrhni preto serverový proces, ktorý overí identitu žiadateľa a zdroje, ktoré mu patria. Nespoliehaj sa na identifikátor, ktorý telefón voľne pošle, pri výbere účtu na odstránenie. Administrátorské práva zostávajú na serveri, v súlade s dokumentáciou kľúčov Supabase.
Pri procese s viacerými krokmi rozhodni, čo má urobiť nový pokus, ak prvý krok prešiel a ďalší zlyhal. Napríklad ak sú súbory už odstránené, nová požiadavka nesmie zlyhať len preto, že chýbajú. Je to scenár, ktorý treba napísať pred testom, nie správanie, ktoré len predpokladáš.
Účet a predplatné: dve samostatné kontroly
Človek môže odstrániť účet, zatiaľ čo predplatné cez Apple beží ďalej. Apple vyžaduje vysvetliť, čo sa stane s fakturáciou, a sprístupniť správu predplatného. Ak používaš Sign in with Apple, zabezpeč aj primerané zrušenie tokenov. Podrobnosti nájdeš v pokynoch Apple k odstráneniu.
V testovacom pláne preto oddeľ zmiznutie účtu, stav plateného prístupu a správu predplatného. Návod predplatné alebo jednorazový nákup ti pomôže zasadiť tento postup do tvojho obchodného modelu.
Testovací postup na testovacom builde
Používaj iba testovací účet a fiktívne dáta. Zapíš si build, zariadenie, pozorovaný výsledok a obmedzenia každej kontroly.
- Zrušiť. Účet aj dáta zostanú dostupné.
- Odstrániť naplnený účet. Konečný stav zodpovedá ohlásenému spracovaniu a dotknuté dáta sú naozaj odstránené.
- Vypnúť sieť. Appka neukáže falošný úspech.
- Spustiť znova po čiastočnom zlyhaní. Požiadavka môže prejsť bez toho, aby zasiahla iné dáta.
- Otvoriť druhú reláciu. So starými prístupmi sa naloží podľa navrhnutého mechanizmu.
- Znova vytvoriť účet s rovnakou adresou, ak je to povolené. Staré súkromné dáta sa znova neobjavia.
Pridaj tieto prípady do testovacej tabuľky Devoria. Ak ich chceš rozdať testerom, postupuj podľa návodu TestFlight. To, že v konzole nie je chybová hláška, nenahrádza kontrolu dát a postupu.
Príprava na odoslanie do App Review
V poznámkach pre review vysvetli, kde sa akcia nachádza a ako ju otestovať. Ak niektorý krok závisí od služby, uisti sa, že počas review funguje. Nepoužívaj poznámky na sľubovanie funkcie, ktorá v odoslanom builde ešte neexistuje.
Stránka appka zamietnutá Apple ti pomôže zostaviť odpoveď, keď už bol problém nahlásený. Pri jej príprave ti Apple Review Kit pomôže nájsť citované pravidlo, čo vyžaduje, a príklad opravy aj odpovede.
Ak pripravuješ svoje prvé odoslanie, bezplatná diagnostika ti povie, čo ešte zostáva urobiť, a pošle ti môj checklist proti zamietnutiu od Apple, vrátane odstránenia účtu. Ak Apple tvoju appku už zamietol, rezervuj si so mnou hodinu: správu si prečítame spolu cez videohovor.
Často kladené otázky
Je odstránenie účtu v iOS appke povinné?
Áno, ak tvoja appka umožňuje vytvoriť účet: Apple vyžaduje, aby človek mohol jeho odstránenie spustiť z appky. Obyčajná deaktivácia túto požiadavku nesplní. Postup musí byť ľahko nájditeľný a musí vysvetliť svoje dôsledky. Ak sa časť dokončuje na webe, odkaz musí viesť priamo na príslušnú stránku.
Čo treba odstrániť, keď používateľ odstráni svoj účet?
Všetko, čo patrí danému človeku, nielen jeho záznam používateľa. Spíš si zoznam: prihlasovacia identita, profil a vytvorený obsah, uložené súbory a odkazy na ne, cache v telefóne, dáta u služieb tretích strán. Zapíš si aj dáta na uchovanie, kvôli akej povinnosti, a informuj o tom človeka. Bez tejto inventúry môže fotka zostať dostupná, hoci záznam používateľa zmizol.
Akceptuje Apple odstránenie účtu, ktoré nie je okamžité?
Áno. Ak spracovanie trvá dlhšie, Apple akceptuje odložený postup, pokiaľ človeka informuješ a dokončenie mu potvrdíš. Appka nesmie budiť dojem, že odstránenie je hotové, keď bola iba zaznamenaná požiadavka. Pri zlyhaní ponechaj užitočnú správu a možnosť skúsiť to znova, bez tvrdenia, že účet zmizol.
Čo sa stane s predplatným, keď používateľ odstráni účet?
Predplatné cez Apple môže po odstránení účtu pokračovať. Apple vyžaduje vysvetliť, čo sa stane s fakturáciou, a sprístupniť správu predplatného. Ak používaš Sign in with Apple, zabezpeč aj primerané zrušenie tokenov. V testovacom pláne oddeľ zmiznutie účtu, stav plateného prístupu a správu predplatného.
Stačí odstrániť používateľa v Supabase Auth?
Nie, odstránenie používateľa v Auth nedokazuje, že všetky objekty tvojho produktu boli spracované. Podľa dokumentácie Supabase používateľa, ktorý vlastní objekty v Storage, nie je možné odstrániť, kým sa to nevyrieši. Odstránenie používateľa tiež okamžite neodhlási všetky už vydané JWT. Priprav serverový proces, ktorý overí identitu žiadateľa.
Ako otestovať odstránenie účtu pred odoslaním do Apple?
Použi testovací účet a fiktívne dáta na testovacom builde. Prejdi šesť prípadov: zrušiť, odstrániť naplnený účet, vypnúť sieť, spustiť znova po čiastočnom zlyhaní, otvoriť druhú reláciu, znova vytvoriť účet s rovnakou adresou, ak je to povolené. Over dáta aj postup: to, že v konzole nie je chyba, nestačí. Na rozdanie buildu postupuj podľa návodu TestFlight.