Fióktörlés iOS appban: tesztelendő folyamat Apple előtt
Írta: Mehdi Azizi
Frissítve: , 7 p
Törlés gomb, kapcsolódó adatok, előfizetés és újbóli belépés: konkrét tesztterv, amivel ellenőrzöd ezt a folyamatot az App Review előtt.
A gomb nem elég: ellenőrizni kell, mi tűnik el
Ha az appodban lehet fiókot létrehozni, az Apple elvárja, hogy a felhasználó az appból indíthassa el a törlését. A puszta deaktiválás nem teljesíti ezt a követelményt. A folyamatnak könnyen megtalálhatónak kell lennie, és el kell magyaráznia a következményeit. Ha egy része a weben fejeződik be, a linknek közvetlenül az adott oldalra kell vezetnie. Forrás: fióktörlés az Apple szerint.
A munka tehát nem ér véget egy piros gombbal a beállításokban. Fel kell mérni az adatokat, végre kell hajtani a törlést a szerveren, kezelni kell a hibákat, és ellenőrizni kell, mit lát utána a felhasználó. Ez az útmutató termék- és technikai teszttervet ad. A megőrzési kötelezettség alá eső adatokat a te tevékenységedhez igazítva kell kezelni.
Kezdd egy adattérképpel
Vegyünk egy kitalált olvasónapló appot. Van benne fiók, profil, privát jegyzetek és a felhasználó által feltöltött borítóképek. Az alábbi példa egy ellenőrizendő tervet ír le, nem egy Devoria appon már végrehajtott törlést.
- Bejelentkezési identitás: hogyan válik használhatatlanná a fiók a törlés után?
- Profil és jegyzetek: mely sorok tartoznak ehhez a személyhez, és hogyan törlődnek?
- Tárolt képek: milyen folyamat távolítja el a fájlokat és a rájuk mutató hivatkozásokat?
- Telefonos gyorsítótár: törli-e a képernyő a helyi adatokat, amikor a művelet ténylegesen sikerült?
- Külső szolgáltatások: kell-e külön törölni az ehhez a fiókhoz kötött adatokat?
- Megőrzendő adatok: melyek, milyen kötelezettség miatt, és hogyan tájékoztatod erről a felhasználót?
Ezzel a térképpel elkerülöd, hogy utólag derüljön ki: egy kép még elérhető, miközben a felhasználói rekord már eltűnt. Azt is megadja, milyen objektumokat kell keresned a tesztek során.
Átlátható folyamat négy állapotban
Íme egy javaslat a kitalált apphoz, amit a saját terméked valós következményeihez kell igazítanod:
- Fiókbeállítások. A „Fiókom törlése” menüpont elérhető marad.
- Megerősítés. A képernyő leírja az érintett adatokat, és a visszavonás lehetőségét ugyanolyan érthetően mutatja, mint a törlést.
- Feldolgozás. A gomb megakadályozza a dupla kéréseket, a felület pedig jelzi, hogy a művelet folyamatban van.
- Eredmény. Megerősített siker esetén kijelentkezett állapot jön. Hiba esetén hasznos üzenet és újrapróbálási lehetőség marad, anélkül hogy azt állítanád, a fiók eltűnt.
Ha a feldolgozás időbe telik, az Apple elfogad késleltetett folyamatot is, feltéve, hogy tájékoztatod a felhasználót, és megerősíted a befejezést. Az app nem keltheti azt a látszatot, hogy a törlés kész, amikor csak a kérést rögzítette. Ugyanez az Apple-dokumentáció kitér az újrahitelesítés eseteire és a szigorúan szabályozott tevékenységekre vonatkozó kivételekre is.
Mire készülj fel Supabase-szel
Egy Auth-felhasználó törlése önmagában nem bizonyítja, hogy a terméked összes objektumát kezelted. A Supabase többek között leírja, hogy egy Storage-objektumokkal rendelkező felhasználó nem törölhető, amíg ezt a helyzetet nem oldod meg. A dokumentáció azt is jelzi, hogy egy felhasználó törlése nem jelentkezteti ki azonnal az összes már kiadott JWT-t: ezek érvényességével a tervezésnél számolni kell. Forrás: felhasználókezelés a Supabase-ben.
Hozz létre tehát egy szerveroldali folyamatot, amely ellenőrzi a kérelmező identitását és a hozzá tartozó erőforrásokat. Ne bízz a telefon által szabadon elküldött azonosítóban, amikor eldöntöd, melyik fiókot törlöd. Az adminisztrátori jogok a szerveren maradnak, a Supabase kulcsairól szóló dokumentáció szerint.
Több lépésből álló folyamatnál döntsd el, mit tegyen egy új próbálkozás, ha az első lépés sikerült, a következő viszont nem. Ha például a fájlokat már eltávolítottad, egy új kérés nem bukhat el csak azért, mert hiányoznak. Ezt a forgatókönyvet a teszt előtt kell megírni, nem feltételezni.
Fiók és előfizetés: két külön ellenőrzés
Valaki törölheti a fiókját, miközben egy Apple-előfizetés tovább fut. Az Apple elvárja, hogy elmagyarázd, mi lesz a számlázással, és hozzáférést adj az előfizetés kezeléséhez. Ha Sign in with Apple-t használsz, gondoskodj a tokenek megfelelő visszavonásáról is. Ezeket részletesen az Apple törlésre vonatkozó irányelvei tárgyalják.
A teszttervedben tehát válaszd külön a fiók eltűnését, a fizetős hozzáférés állapotát és az előfizetés kezelését. Az előfizetés vagy egyszeri vásárlás útmutató segít elhelyezni ezt a folyamatot az üzleti modelledben.
A teszt, amit egy tesztbuildön futtatsz
Kizárólag tesztfiókot és kitalált adatokat használj. Jegyezd fel a buildet, az eszközt, a tapasztalt eredményt és minden ellenőrzés korlátait.
- Visszavonás. A fiók és az adatok elérhetők maradnak.
- Feltöltött fiók törlése. A végállapot megfelel a bejelentett folyamatnak, az érintett adatok ténylegesen eltűnnek.
- Hálózat lekapcsolása. Az app nem mutat hamis sikert.
- Újraindítás részleges hiba után. A kérés sikeresen lefuthat anélkül, hogy más adatokat érintene.
- Második munkamenet megnyitása. A régi hozzáférések kezelése a tervezett mechanizmus szerint történik.
- Új fiók létrehozása ugyanazzal a címmel, ha engedélyezett. A régi privát adatok nem jelennek meg újra.
Add hozzá ezeket az eseteket a Devoria tesztlistájához. Ha tesztelőknek akarod kiosztani, kövesd a TestFlight útmutatót. Ha a konzolban nincs hibaüzenet, az nem helyettesíti az adatok és a folyamat ellenőrzését.
Felkészülés az App Review-ra
A review-jegyzetekben írd le, hol található a művelet, és hogyan lehet tesztelni. Ha egy lépés egy szolgáltatástól függ, gondoskodj róla, hogy a review alatt elérhető legyen. Ne használd a jegyzeteket arra, hogy olyan funkciót ígérj, ami az elküldött buildben még nincs benne.
Az Apple által elutasított alkalmazás oldal segít megszervezni a választ, ha már jeleztek egy problémát. A felkészüléshez az Apple Review Kit segít megtalálni a hivatkozott szabályt, azt, hogy mit követel, valamint egy javítási és válaszpéldát.
Ha az első beküldésedre készülsz, az ingyenes diagnózis megmondja, mi van még hátra, és elküldi az Apple-elutasítás elleni ellenőrzőlistámat, a fióktörléssel együtt. Ha az Apple már elutasította az appodat, foglalj velem egy órát: videóhívásban együtt átnézzük az üzenetet.
Gyakori kérdések
Kötelező a fióktörlés egy iOS appban?
Igen, ha az appodban lehet fiókot létrehozni: az Apple elvárja, hogy a felhasználó az appból indíthassa el a törlését. A puszta deaktiválás nem teljesíti ezt a követelményt. A folyamatnak könnyen megtalálhatónak kell lennie, és el kell magyaráznia a következményeit. Ha egy része a weben fejeződik be, a linknek közvetlenül az adott oldalra kell vezetnie.
Mit kell törölni, amikor egy felhasználó törli a fiókját?
Mindent, ami a személyhez tartozik, nem csak a felhasználói rekordját. Készíts listát: bejelentkezési identitás, profil és létrehozott tartalmak, tárolt fájlok és hivatkozásaik, telefonos gyorsítótár, külső szolgáltatásoknál lévő adatok. Jegyezd fel a megőrzendő adatokat is, hogy milyen kötelezettség miatt, és tájékoztasd a felhasználót. E leltár nélkül egy kép elérhető maradhat, miközben a felhasználói rekord már eltűnt.
Elfogadja az Apple, ha a fióktörlés nem azonnali?
Igen. Ha a feldolgozás időbe telik, az Apple elfogad késleltetett folyamatot, feltéve, hogy tájékoztatod a felhasználót, és megerősíted a befejezést. Az app nem keltheti azt a látszatot, hogy a törlés kész, amikor csak a kérést rögzítette. Hiba esetén maradjon hasznos üzenet és újrapróbálási lehetőség, anélkül hogy azt állítanád, a fiók eltűnt.
Mi lesz az előfizetéssel, amikor a felhasználó törli a fiókját?
Az Apple-előfizetés a fiók törlése után is futhat tovább. Az Apple elvárja, hogy elmagyarázd, mi lesz a számlázással, és hozzáférést adj az előfizetés kezeléséhez. Ha Sign in with Apple-t használsz, gondoskodj a tokenek megfelelő visszavonásáról is. A teszttervedben válaszd külön a fiók eltűnését, a fizetős hozzáférés állapotát és az előfizetés kezelését.
Elég törölni a felhasználót a Supabase Auth-ban?
Nem, egy Auth-felhasználó törlése nem bizonyítja, hogy a terméked összes objektumát kezelted. A Supabase dokumentációja szerint egy Storage-objektumokkal rendelkező felhasználó nem törölhető, amíg ezt nem oldod meg. Egy felhasználó törlése azonnal ki sem jelentkezteti az összes már kiadott JWT-t. Készíts szerveroldali folyamatot, amely ellenőrzi a kérelmező identitását.
Hogyan teszteld a fióktörlést az Apple-nek való beküldés előtt?
Használj tesztfiókot és kitalált adatokat egy tesztbuildön. Futtass hat esetet: visszavonás, feltöltött fiók törlése, hálózat lekapcsolása, újraindítás részleges hiba után, második munkamenet megnyitása, új fiók létrehozása ugyanazzal a címmel, ha ez engedélyezett. Ellenőrizd az adatokat és a folyamatot: az, hogy a konzolban nincs hiba, nem elég. A build kiosztásához kövesd a TestFlight útmutatót.