Smazání účtu v iOS aplikaci: co otestovat před Apple
Autor: Mehdi Azizi
Aktualizováno , 7 min
Tlačítko pro smazání, související data, předplatné a opětovné přihlášení: konkrétní postup, jak ověřit smazání účtu před odesláním do App Review.
Tlačítko nestačí: musíš ověřit, co doopravdy zmizí
Pokud si v tvé aplikaci jde založit účet, Apple vyžaduje, aby člověk mohl jeho smazání spustit přímo z aplikace. Pouhá deaktivace tenhle požadavek nesplňuje. Postup musí být snadno k nalezení a musí vysvětlit, co smazání znamená. Pokud se část dokončuje na webu, odkaz musí vést přímo na příslušnou stránku. Zdroj: smazání účtu podle Apple.
Práce tedy nekončí červeným tlačítkem v nastavení. Musíš sepsat data, provést smazání na serveru, ošetřit chyby a ověřit, co uživatel uvidí potom. Tenhle návod nabízí produktový a technický testovací postup. Data, na která se vztahuje povinnost uchování, vyžadují řešení přizpůsobené tvé činnosti.
Začni mapou dat
Vezměme si smyšlenou aplikaci na čtenářský deník. Má účet, profil, soukromé poznámky a obrázky obálek, které přidává uživatel. Příklad níže popisuje plán k ověření, ne smazání, které už proběhlo v některé aplikaci Devoria.
- Přihlašovací identita: jak zajistit, aby byl účet po smazání nepoužitelný?
- Profil a poznámky: které řádky patří tomuto člověku a jak se mažou?
- Uložené fotky: jaký proces odstraní soubory i odkazy na ně?
- Cache v telefonu: maže obrazovka lokální data až ve chvíli, kdy operace opravdu proběhla?
- Služby třetích stran: potřebují data spojená s tímto účtem samostatné smazání?
- Data k uchování: která, kvůli jaké povinnosti a jak o tom uživatele informuješ?
Díky téhle mapě nezjistíš až dodatečně, že fotka zůstala dostupná, i když záznam uživatele zmizel. Zároveň máš seznam objektů, které při testech hledat.
Srozumitelný postup ve čtyřech stavech
Tady je návrh pro smyšlenou aplikaci, který přizpůsob skutečným důsledkům svého produktu:
- Nastavení účtu. Položka „Smazat účet“ je stále dostupná.
- Potvrzení. Obrazovka popisuje dotčená data a nabízí zrušení, které je stejně srozumitelné jako samotné smazání.
- Zpracování. Tlačítko brání dvojímu odeslání a rozhraní ukazuje, že operace probíhá.
- Výsledek. Potvrzený úspěch otevře odhlášený stav. Neúspěch zobrazí užitečnou zprávu a možnost to zkusit znovu, aniž by tvrdil, že účet zmizel.
Pokud zpracování trvá déle, Apple přijme odložený postup, pokud člověka informuješ a dokončení potvrdíš. Aplikace nesmí budit dojem, že je smazání hotové, když byla jen zaznamenána žádost. Stejná dokumentace Apple upřesňuje i případy opětovného ověření a výjimky pro silně regulované činnosti.
Na co se připravit se Supabase
Smazání uživatele v Auth samo o sobě nedokazuje, že byly zpracovány všechny objekty tvého produktu. Supabase mimo jiné vysvětluje, že uživatele, který vlastní objekty ve Storage, nejde smazat, dokud se tahle situace nevyřeší. Dokumentace také upozorňuje, že smazání uživatele okamžitě neodhlásí všechny už vydané JWT: s jejich platností musíš v návrhu počítat. Zdroj: správa uživatelů v Supabase.
Nadefinuj proto proces na serveru, který ověří identitu žadatele a prostředky, které mu patří. Nespoléhej na identifikátor, který telefon volně pošle, při výběru účtu ke smazání. Administrátorská oprávnění zůstávají na serveru, v souladu s dokumentací klíčů Supabase.
U vícekrokového procesu rozhodni, co má udělat nový pokus, když první krok uspěl a další selhal. Například pokud už jsou soubory odstraněné, nová žádost nesmí selhat jen proto, že chybí. Je to scénář, který sepíšeš před testem, ne chování, které předpokládáš.
Účet a předplatné: dvě samostatné kontroly
Člověk může smazat účet, zatímco předplatné u Apple dál běží. Apple vyžaduje vysvětlit, co bude s platbami, a dát přístup ke správě předplatného. Pokud používáš Sign in with Apple, počítej i s odpovídajícím odvoláním tokenů. Tyhle body podrobně popisují pokyny Apple ke smazání.
Ve svém testovacím plánu proto odděl zmizení účtu, stav placeného přístupu a správu předplatného. Návod předplatné, nebo jednorázový nákup ti pomůže zasadit tenhle postup do tvého obchodního modelu.
Testovací postup na testovacím buildu
Používej jen testovací účet a smyšlená data. Zapiš si build, zařízení, pozorovaný výsledek a omezení každé kontroly.
- Zrušit. Účet i data zůstanou dostupné.
- Smazat naplněný účet. Konečný stav odpovídá ohlášenému procesu a dotčená data jsou skutečně odstraněná.
- Vypnout síť. Aplikace neukáže falešný úspěch.
- Zkusit znovu po částečném selhání. Žádost může doběhnout, aniž by zasáhla jiná data.
- Otevřít druhou relaci. Staré přístupy se řeší podle plánovaného mechanismu.
- Založit znovu účet se stejnou adresou, pokud je to povolené. Stará soukromá data se znovu neobjeví.
Přidej tyhle případy do testovací tabulky Devoria. Pokud je chceš rozdat testerům, řiď se návodem k TestFlight. To, že v konzoli není žádná chyba, nenahrazuje kontrolu dat a postupu.
Příprava na odeslání do App Review
V poznámkách pro revizi vysvětli, kde akci najdou a jak ji otestovat. Pokud nějaký krok závisí na službě, zajisti, aby byla během revize dostupná. Nepoužívej poznámky k tomu, abys sliboval funkci, která v odeslaném buildu ještě není.
Stránka aplikace zamítnutá Applem ti pomůže uspořádat odpověď, když už byl problém nahlášen. Při její přípravě ti Apple Review Kit pomůže najít citované pravidlo, co vyžaduje, a příklad opravy i odpovědi.
Pokud chystáš první odeslání, bezplatná diagnostika ti řekne, co zbývá udělat, a pošle ti můj checklist proti zamítnutí od Apple, včetně smazání účtu. Pokud Apple tvou aplikaci už zamítl, zarezervuj si se mnou hodinu: zprávu si projdeme spolu přes videohovor.
Časté dotazy
Je smazání účtu v iOS aplikaci povinné?
Ano, pokud si v tvé aplikaci jde založit účet: Apple vyžaduje, aby člověk mohl jeho smazání spustit přímo z aplikace. Pouhá deaktivace tenhle požadavek nesplňuje. Postup musí být snadno k nalezení a musí vysvětlit, co smazání znamená. Pokud se část dokončuje na webu, odkaz musí vést přímo na příslušnou stránku.
Co je potřeba smazat, když uživatel smaže účet?
Všechno, co tomu člověku patří, nejen jeho uživatelský záznam. Sepiš si seznam: přihlašovací identita, profil a vytvořený obsah, uložené soubory a odkazy na ně, cache v telefonu, data u služeb třetích stran. Zapiš si i data k uchování, kvůli jaké povinnosti, a informuj o tom uživatele. Bez téhle inventury může fotka zůstat dostupná, i když uživatelský záznam zmizel.
Přijme Apple smazání účtu, které není okamžité?
Ano. Pokud zpracování trvá déle, Apple přijme odložený postup, pokud člověka informuješ a dokončení potvrdíš. Aplikace nesmí budit dojem, že je smazání hotové, když byla jen zaznamenána žádost. Při selhání ponech užitečnou zprávu a možnost to zkusit znovu, aniž bys tvrdil, že účet zmizel.
Co se stane s předplatným, když uživatel smaže účet?
Předplatné u Apple může po smazání účtu dál běžet. Apple vyžaduje vysvětlit, co bude s platbami, a dát přístup ke správě předplatného. Pokud používáš Sign in with Apple, počítej i s odpovídajícím odvoláním tokenů. Ve svém testovacím plánu odděl zmizení účtu, stav placeného přístupu a správu předplatného.
Stačí smazat uživatele v Supabase Auth?
Ne, smazání uživatele v Auth nedokazuje, že byly zpracovány všechny objekty tvého produktu. Podle dokumentace Supabase nejde uživatele, který vlastní objekty ve Storage, smazat, dokud se tohle nevyřeší. Smazání uživatele navíc okamžitě neodhlásí všechny už vydané JWT. Připrav proces na serveru, který ověří identitu žadatele.
Jak otestovat smazání účtu před odesláním do Apple?
Použij testovací účet a smyšlená data na testovacím buildu. Projdi šest případů: zrušit, smazat naplněný účet, vypnout síť, zkusit znovu po částečném selhání, otevřít druhou relaci, založit znovu účet se stejnou adresou, pokud je to povolené. Ověř data i postup: to, že v konzoli není chyba, nestačí. Pro distribuci buildu se řiď návodem k TestFlight.