Usuwanie konta w aplikacji iOS: co przetestować przed Apple
Autor: Mehdi Azizi
Zaktualizowano , 7 min
Przycisk usuwania, powiązane dane, subskrypcja i ponowne logowanie: konkretny plan testów tej ścieżki przed wysłaniem do App Review.
Sam przycisk nie wystarczy: trzeba sprawdzić, co znika
Jeśli w twojej aplikacji da się założyć konto, Apple wymaga, żeby użytkownik mógł z poziomu aplikacji rozpocząć jego usunięcie. Zwykła dezaktywacja nie spełnia tego wymogu. Ścieżka musi być łatwa do znalezienia i wyjaśniać konsekwencje. Jeśli część procesu kończy się w przeglądarce, link musi prowadzić bezpośrednio na właściwą stronę. Źródło: usuwanie konta według Apple.
Praca nie kończy się więc na czerwonym przycisku w ustawieniach. Trzeba zinwentaryzować dane, wykonać usuwanie po stronie serwera, obsłużyć błędy i sprawdzić, co użytkownik widzi potem. Ten poradnik to plan testów produktowych i technicznych. Dane objęte obowiązkiem przechowywania wymagają podejścia dopasowanego do twojej działalności.
Zacznij od mapy danych
Weźmy fikcyjną aplikację, dziennik czytelniczy. Ma konto, profil, prywatne notatki i zdjęcia okładek dodawane przez użytkownika. Poniższy przykład opisuje plan do sprawdzenia, a nie usuwanie już wdrożone w aplikacji Devoria.
- Tożsamość logowania: jak sprawić, żeby po usunięciu konta nie dało się go już używać?
- Profil i notatki: które wiersze należą do tej osoby i jak są usuwane?
- Przechowywane zdjęcia: jaki proces usuwa pliki i odwołania do nich?
- Cache na telefonie: czy ekran czyści dane lokalne dopiero wtedy, gdy operacja naprawdę się powiodła?
- Usługi zewnętrzne: czy dane powiązane z tym kontem wymagają osobnego usunięcia?
- Dane do zachowania: które, z jakiego obowiązku i jak informujesz o tym użytkownika?
Ta mapa chroni cię przed odkryciem po fakcie, że zdjęcie wciąż jest dostępne, choć rekord użytkownika zniknął. Daje ci też listę obiektów do sprawdzenia w testach.
Czytelna ścieżka w czterech stanach
Oto propozycja dla fikcyjnej aplikacji, do dopasowania do realnych konsekwencji w twoim produkcie:
- Ustawienia konta. Pozycja „Usuń moje konto” jest zawsze dostępna.
- Potwierdzenie. Ekran opisuje, których danych to dotyczy, i pokazuje opcję anulowania równie zrozumiałą jak opcja usunięcia.
- Przetwarzanie. Przycisk zapobiega podwójnym żądaniom, a interfejs pokazuje, że operacja trwa.
- Wynik. Potwierdzony sukces przenosi do stanu wylogowania. Błąd zostawia pomocny komunikat i możliwość ponowienia, bez udawania, że konto zniknęło.
Jeśli przetwarzanie trwa dłużej, Apple akceptuje odroczoną ścieżkę, pod warunkiem że poinformujesz użytkownika i potwierdzisz zakończenie. Aplikacja nie może sugerować, że usuwanie się zakończyło, skoro zapisano tylko żądanie. Ta sama dokumentacja Apple opisuje też przypadki ponownego uwierzytelnienia i wyjątki dla branż silnie regulowanych.
Co przewidzieć z Supabase
Usunięcie użytkownika w Auth samo w sobie nie dowodzi, że wszystkie obiekty twojego produktu zostały obsłużone. Supabase wyjaśnia m.in., że użytkownika, który ma obiekty w Storage, nie da się usunąć, dopóki ta sytuacja nie zostanie rozwiązana. Dokumentacja zaznacza też, że usunięcie użytkownika nie unieważnia natychmiast wszystkich wydanych już JWT: ich ważność trzeba uwzględnić w projekcie. Źródło: zarządzanie użytkownikami w Supabase.
Zaprojektuj więc proces po stronie serwera, który weryfikuje tożsamość osoby składającej żądanie i należące do niej zasoby. Nie ufaj identyfikatorowi przesłanemu dowolnie przez telefon przy wyborze konta do usunięcia. Uprawnienia administracyjne zostają na serwerze, zgodnie z dokumentacją kluczy Supabase.
Przy procesie wieloetapowym zdecyduj, co ma zrobić ponowna próba, jeśli pierwszy etap się udał, a kolejny nie. Na przykład jeśli pliki są już usunięte, nowe żądanie nie powinno się wywalić tylko dlatego, że ich brakuje. To scenariusz do spisania przed testem, a nie zachowanie do założenia.
Konto i subskrypcja: dwie osobne kontrole
Ktoś może usunąć konto, podczas gdy subskrypcja Apple nadal trwa. Apple wymaga wyjaśnienia, co dzieje się z płatnościami, i udostępnienia zarządzania subskrypcją. Zaplanuj też odpowiednie unieważnienie tokenów, jeśli używasz Sign in with Apple. Te kwestie opisują wytyczne Apple dotyczące usuwania konta.
W planie testów rozdziel więc zniknięcie konta, stan płatnego dostępu i zarządzanie subskrypcją. Poradnik subskrypcja czy jednorazowy zakup pomoże ci umieścić tę ścieżkę w twoim modelu biznesowym.
Testy do wykonania na buildzie testowym
Używaj wyłącznie konta testowego i fikcyjnych danych. Zapisuj build, urządzenie, zaobserwowany wynik i ograniczenia każdej kontroli.
- Anuluj. Konto i dane pozostają dostępne.
- Usuń wypełnione konto. Stan końcowy odpowiada zapowiedzianemu procesowi, a dane, których to dotyczy, faktycznie znikają.
- Wyłącz sieć. Aplikacja nie pokazuje fałszywego sukcesu.
- Ponów po częściowym błędzie. Żądanie może się zakończyć bez naruszania innych danych.
- Otwórz drugą sesję. Stare dostępy są obsłużone zgodnie z zaplanowanym mechanizmem.
- Załóż ponownie konto na ten sam adres, jeśli to dozwolone. Stare prywatne dane się nie pojawiają.
Dodaj te przypadki do listy testów Devoria. Żeby rozesłać je testerom, skorzystaj z poradnika TestFlight. Brak błędów w konsoli nie zastąpi sprawdzenia danych i ścieżki.
Przygotuj wysyłkę do App Review
W notatkach dla recenzenta wyjaśnij, gdzie jest ta opcja i jak ją przetestować. Jeśli jakiś krok zależy od usługi, upewnij się, że będzie dostępna w trakcie recenzji. Nie obiecuj w notatkach funkcji, której jeszcze nie ma w wysłanym buildzie.
Strona aplikacja odrzucona przez Apple pomoże ci uporządkować odpowiedź, gdy problem został już zgłoszony. Przy jej przygotowaniu Apple Review Kit pomoże ci odnaleźć przywołaną regułę, zrozumieć, czego wymaga, i da przykład poprawki oraz odpowiedzi.
Jeśli szykujesz pierwszą wysyłkę, darmowa diagnoza powie ci, co jeszcze zostało do zrobienia, i wyśle ci moją checklistę przeciw odrzuceniom przez Apple, łącznie z usuwaniem konta. Jeśli Apple już odrzuciło twoją aplikację, zarezerwuj ze mną godzinę: przeczytamy wiadomość razem, na wideorozmowie.
Najczęściej zadawane pytania
Czy usuwanie konta jest obowiązkowe w aplikacji iOS?
Tak, jeśli w twojej aplikacji można założyć konto: Apple wymaga, żeby użytkownik mógł z poziomu aplikacji rozpocząć jego usunięcie. Zwykła dezaktywacja nie spełnia tego wymogu. Ścieżka musi być łatwa do znalezienia i wyjaśniać konsekwencje. Jeśli część procesu kończy się w przeglądarce, link musi prowadzić bezpośrednio na właściwą stronę.
Co trzeba usunąć, gdy użytkownik usuwa konto?
Wszystko, co należy do tej osoby, nie tylko jej rekord użytkownika. Zrób listę: tożsamość logowania, profil i utworzone treści, przechowywane pliki i odwołania do nich, cache na telefonie, dane w usługach zewnętrznych. Zapisz też dane do zachowania, z jakiego obowiązku, i poinformuj o tym użytkownika. Bez takiej inwentaryzacji zdjęcie może zostać dostępne, choć rekord użytkownika zniknął.
Czy Apple akceptuje usuwanie konta, które nie jest natychmiastowe?
Tak. Jeśli przetwarzanie trwa dłużej, Apple akceptuje odroczoną ścieżkę, pod warunkiem że poinformujesz użytkownika i potwierdzisz zakończenie. Aplikacja nie może sugerować, że usuwanie się zakończyło, skoro zapisano tylko żądanie. W razie błędu zostaw pomocny komunikat i możliwość ponowienia, bez udawania, że konto zniknęło.
Co dzieje się z subskrypcją, gdy użytkownik usuwa konto?
Subskrypcja Apple może trwać dalej po usunięciu konta. Apple wymaga wyjaśnienia, co dzieje się z płatnościami, i udostępnienia zarządzania subskrypcją. Jeśli używasz Sign in with Apple, zaplanuj też odpowiednie unieważnienie tokenów. W planie testów rozdziel zniknięcie konta, stan płatnego dostępu i zarządzanie subskrypcją.
Czy wystarczy usunąć użytkownika w Supabase Auth?
Nie, usunięcie użytkownika w Auth nie dowodzi, że wszystkie obiekty twojego produktu zostały obsłużone. Według dokumentacji Supabase użytkownika, który ma obiekty w Storage, nie da się usunąć, dopóki ta kwestia nie zostanie rozwiązana. Usunięcie użytkownika nie unieważnia też natychmiast wszystkich wydanych już JWT. Zaplanuj proces po stronie serwera, który weryfikuje tożsamość osoby składającej żądanie.
Jak przetestować usuwanie konta przed wysłaniem do Apple?
Użyj konta testowego i fikcyjnych danych na buildzie testowym. Wykonaj sześć przypadków: anulowanie, usunięcie wypełnionego konta, wyłączenie sieci, ponowienie po częściowym błędzie, otwarcie drugiej sesji, ponowne założenie konta na ten sam adres, jeśli to dozwolone. Sprawdź dane i ścieżkę: brak błędów w konsoli nie wystarczy. Żeby rozesłać build, skorzystaj z poradnika TestFlight.