Διαγραφή λογαριασμού iOS: τι να τεστάρεις πριν την Apple
Από Mehdi Azizi
Ενημερώθηκε στις , 7 λ.
Κουμπί διαγραφής, συνδεδεμένα δεδομένα, συνδρομή και νέα σύνδεση: ένα πρακτικό τεστ για να ελέγξεις τη ροή πριν την υποβολή στο App Review.
Το κουμπί δεν αρκεί: πρέπει να ελέγξεις τι εξαφανίζεται
Αν η app σου επιτρέπει τη δημιουργία λογαριασμού, η Apple ζητά ο χρήστης να μπορεί να ξεκινήσει τη διαγραφή του μέσα από την app. Μια απλή απενεργοποίηση δεν καλύπτει αυτή την απαίτηση. Η ροή πρέπει να βρίσκεται εύκολα και να εξηγεί τις συνέπειές της. Αν ένα μέρος ολοκληρώνεται στο Web, ο σύνδεσμος πρέπει να οδηγεί κατευθείαν στη σχετική σελίδα. Πηγή: η διαγραφή λογαριασμού σύμφωνα με την Apple.
Άρα η δουλειά δεν τελειώνει σε ένα κόκκινο κουμπί στις ρυθμίσεις. Πρέπει να καταγράψεις τα δεδομένα, να εκτελέσεις τη διαγραφή στον server, να χειριστείς τα σφάλματα και να ελέγξεις τι βλέπει ο χρήστης μετά. Αυτός ο οδηγός προτείνει ένα τεστ προϊόντος και τεχνικό· τα δεδομένα που υπόκεινται σε υποχρέωση διατήρησης θέλουν χειρισμό προσαρμοσμένο στη δραστηριότητά σου.
Ξεκίνα με έναν χάρτη δεδομένων
Ας πάρουμε μια φανταστική app ημερολογίου ανάγνωσης. Έχει λογαριασμό, προφίλ, ιδιωτικές σημειώσεις και φωτογραφίες εξωφύλλων που ανεβάζει ο χρήστης. Το παράδειγμα παρακάτω περιγράφει ένα σχέδιο προς έλεγχο, όχι μια διαγραφή που έχει ήδη εκτελεστεί σε app της Devoria.
- Ταυτότητα σύνδεσης: πώς κάνεις τον λογαριασμό άχρηστο μετά τη διαγραφή;
- Προφίλ και σημειώσεις: ποιες γραμμές ανήκουν σε αυτό το άτομο και πώς διαγράφονται;
- Αποθηκευμένες φωτογραφίες: ποια διαδικασία αφαιρεί τα αρχεία και τις αναφορές τους;
- Cache του κινητού: σβήνει η οθόνη τα τοπικά δεδομένα όταν η λειτουργία έχει πραγματικά ολοκληρωθεί;
- Υπηρεσίες τρίτων: χρειάζονται τα δεδομένα αυτού του λογαριασμού ξεχωριστή διαγραφή;
- Δεδομένα προς διατήρηση: ποια, για ποια υποχρέωση, και με ποια ενημέρωση του χρήστη;
Αυτός ο χάρτης σε γλιτώνει από το να ανακαλύψεις εκ των υστέρων ότι μια φωτογραφία είναι ακόμα προσβάσιμη ενώ η εγγραφή του χρήστη έχει εξαφανιστεί. Σου δίνει επίσης τα αντικείμενα που θα ψάξεις στα τεστ.
Μια ξεκάθαρη ροή σε τέσσερις καταστάσεις
Ορίστε μια πρόταση για τη φανταστική app, να την προσαρμόσεις στις πραγματικές συνέπειες του προϊόντος σου:
- Ρυθμίσεις λογαριασμού. Μια επιλογή «Διαγραφή λογαριασμού» παραμένει προσβάσιμη.
- Επιβεβαίωση. Η οθόνη περιγράφει τα σχετικά δεδομένα και δείχνει μια ενέργεια ακύρωσης εξίσου κατανοητή με την ενέργεια διαγραφής.
- Επεξεργασία. Το κουμπί αποτρέπει τα διπλά αιτήματα και το interface δείχνει ότι η λειτουργία είναι σε εξέλιξη.
- Αποτέλεσμα. Μια επιβεβαιωμένη επιτυχία ανοίγει την αποσυνδεδεμένη κατάσταση. Μια αποτυχία κρατά ένα χρήσιμο μήνυμα και τρόπο να ξαναδοκιμάσεις, χωρίς να ισχυρίζεται ότι ο λογαριασμός εξαφανίστηκε.
Αν η επεξεργασία παίρνει χρόνο, η Apple δέχεται μια καθυστερημένη ροή, με την προϋπόθεση να ενημερώσεις τον χρήστη και να επιβεβαιώσεις την ολοκλήρωση. Η app δεν πρέπει να αφήνει να εννοηθεί ότι μια διαγραφή ολοκληρώθηκε όταν έχει καταχωρηθεί μόνο το αίτημα. Η ίδια τεκμηρίωση της Apple διευκρινίζει επίσης τις περιπτώσεις επαναταυτοποίησης και τις εξαιρέσεις για έντονα ρυθμιζόμενες δραστηριότητες.
Τι να προβλέψεις με το Supabase
Η διαγραφή ενός χρήστη Auth δεν αποτελεί από μόνη της απόδειξη ότι όλα τα αντικείμενα του προϊόντος σου έχουν διαχειριστεί. Το Supabase εξηγεί συγκεκριμένα ότι ένας χρήστης που κατέχει αντικείμενα Storage δεν μπορεί να διαγραφεί όσο αυτό δεν έχει λυθεί. Η τεκμηρίωση επισημαίνει επίσης ότι η διαγραφή ενός χρήστη δεν αποσυνδέει αμέσως όλα τα JWT που έχουν ήδη εκδοθεί: η ισχύς τους πρέπει να ληφθεί υπόψη στον σχεδιασμό. Πηγή: διαχείριση χρηστών στο Supabase.
Όρισε λοιπόν μια διαδικασία στον server που ελέγχει την ταυτότητα του αιτούντος και τους πόρους που του ανήκουν. Μην βασίζεσαι σε ένα αναγνωριστικό που στέλνει ελεύθερα το κινητό για να επιλέξεις ποιον λογαριασμό θα διαγράψεις. Τα δικαιώματα διαχειριστή μένουν στον server, σύμφωνα με την τεκμηρίωση των κλειδιών του Supabase.
Για μια διαδικασία σε πολλά βήματα, αποφάσισε τι πρέπει να κάνει μια νέα προσπάθεια αν ένα πρώτο βήμα πέτυχε και το επόμενο απέτυχε. Για παράδειγμα, αν τα αρχεία έχουν ήδη αφαιρεθεί, ένα νέο αίτημα δεν πρέπει να αποτύχει μόνο επειδή λείπουν. Είναι ένα σενάριο που γράφεις πριν το τεστ, όχι μια συμπεριφορά που υποθέτεις.
Λογαριασμός και συνδρομή: δύο ξεχωριστοί έλεγχοι
Κάποιος μπορεί να διαγράψει τον λογαριασμό του ενώ μια συνδρομή Apple συνεχίζεται. Η Apple ζητά να εξηγήσεις τι γίνεται με τη χρέωση και να δώσεις πρόσβαση στη διαχείριση της συνδρομής. Πρόβλεψε επίσης την κατάλληλη ανάκληση των tokens αν χρησιμοποιείς Sign in with Apple. Αυτά αναλύονται στις οδηγίες της Apple για τη διαγραφή.
Στο πλάνο τεστ σου, ξεχώρισε λοιπόν την εξαφάνιση του λογαριασμού, την κατάσταση της πληρωμένης πρόσβασης και τη διαχείριση της συνδρομής. Ο οδηγός συνδρομή ή εφάπαξ αγορά σε βοηθά να τοποθετήσεις αυτή τη ροή μέσα στο επιχειρηματικό σου μοντέλο.
Το τεστ που εκτελείς σε ένα test build
Χρησιμοποίησε μόνο λογαριασμό δοκιμών και φανταστικά δεδομένα. Σημείωσε το build, τη συσκευή, το αποτέλεσμα που παρατήρησες και τα όρια κάθε ελέγχου.
- Ακύρωση. Ο λογαριασμός και τα δεδομένα παραμένουν προσβάσιμα.
- Διαγραφή γεμάτου λογαριασμού. Η τελική κατάσταση αντιστοιχεί στη διαδικασία που ανακοινώθηκε· τα σχετικά δεδομένα αφαιρούνται πράγματι.
- Αποσύνδεση δικτύου. Η app δεν δείχνει ψεύτικη επιτυχία.
- Νέα προσπάθεια μετά από μερική αποτυχία. Το αίτημα μπορεί να ολοκληρωθεί χωρίς να στοχεύσει άλλα δεδομένα.
- Άνοιγμα δεύτερης συνεδρίας. Οι παλιές προσβάσεις αντιμετωπίζονται σύμφωνα με τον προβλεπόμενο μηχανισμό.
- Νέος λογαριασμός με το ίδιο email, αν επιτρέπεται. Τα παλιά ιδιωτικά δεδομένα δεν ξαναεμφανίζονται.
Πρόσθεσε αυτές τις περιπτώσεις στη λίστα τεστ της Devoria. Για να τις μοιράσεις σε testers, ακολούθησε τον οδηγό TestFlight. Η απουσία μηνύματος σφάλματος στην κονσόλα δεν αντικαθιστά τον έλεγχο των δεδομένων και της ροής.
Προετοιμασία της υποβολής στο App Review
Στις σημειώσεις για το review, εξήγησε πού βρίσκεται η ενέργεια και πώς τεστάρεται. Αν ένα βήμα εξαρτάται από μια υπηρεσία, βεβαιώσου ότι είναι διαθέσιμη κατά τη διάρκεια του review. Μη χρησιμοποιείς τις σημειώσεις για να υποσχεθείς μια λειτουργία που δεν υπάρχει ακόμα στο build που έστειλες.
Η σελίδα app που απορρίφθηκε από την Apple σε βοηθά να οργανώσεις μια απάντηση όταν έχει ήδη επισημανθεί πρόβλημα. Για να την ετοιμάσεις, το Apple Review Kit σε βοηθά να βρεις τον κανόνα που αναφέρεται, τι ζητά, και ένα παράδειγμα διόρθωσης και απάντησης.
Αν ετοιμάζεις την πρώτη σου υποβολή, η δωρεάν διάγνωση σου λέει τι μένει να κάνεις και σου στέλνει τη checklist μου κατά των απορρίψεων της Apple, μαζί με τη διαγραφή λογαριασμού. Αν η Apple έχει ήδη απορρίψει την app σου, κλείσε μια ώρα μαζί μου: διαβάζουμε το μήνυμα μαζί, σε βιντεοκλήση.
Συχνές ερωτήσεις
Είναι υποχρεωτική η διαγραφή λογαριασμού σε μια app iOS;
Ναι, αν η app σου επιτρέπει τη δημιουργία λογαριασμού: η Apple ζητά ο χρήστης να μπορεί να ξεκινήσει τη διαγραφή του μέσα από την app. Μια απλή απενεργοποίηση δεν καλύπτει αυτή την απαίτηση. Η ροή πρέπει να βρίσκεται εύκολα και να εξηγεί τις συνέπειές της. Αν ένα μέρος ολοκληρώνεται στο Web, ο σύνδεσμος πρέπει να οδηγεί κατευθείαν στη σχετική σελίδα.
Τι πρέπει να διαγραφεί όταν ένας χρήστης διαγράφει τον λογαριασμό του;
Ό,τι ανήκει στο άτομο, όχι μόνο η εγγραφή χρήστη. Φτιάξε τη λίστα: ταυτότητα σύνδεσης, προφίλ και περιεχόμενο που δημιούργησε, αποθηκευμένα αρχεία και οι αναφορές τους, cache του κινητού, δεδομένα σε υπηρεσίες τρίτων. Σημείωσε επίσης τα δεδομένα προς διατήρηση, για ποια υποχρέωση, και ενημέρωσε τον χρήστη. Χωρίς αυτή την καταγραφή, μια φωτογραφία μπορεί να μείνει προσβάσιμη ενώ η εγγραφή του χρήστη έχει εξαφανιστεί.
Δέχεται η Apple μια διαγραφή λογαριασμού που δεν είναι άμεση;
Ναι. Αν η επεξεργασία παίρνει χρόνο, η Apple δέχεται μια καθυστερημένη ροή, με την προϋπόθεση να ενημερώσεις τον χρήστη και να επιβεβαιώσεις την ολοκλήρωση. Η app δεν πρέπει να αφήνει να εννοηθεί ότι η διαγραφή ολοκληρώθηκε όταν έχει καταχωρηθεί μόνο το αίτημα. Σε περίπτωση αποτυχίας, κράτα ένα χρήσιμο μήνυμα και τρόπο να ξαναδοκιμάσει, χωρίς να ισχυρίζεσαι ότι ο λογαριασμός εξαφανίστηκε.
Τι γίνεται με τη συνδρομή όταν ο χρήστης διαγράφει τον λογαριασμό του;
Η συνδρομή Apple μπορεί να συνεχιστεί μετά τη διαγραφή του λογαριασμού. Η Apple ζητά να εξηγήσεις τι γίνεται με τη χρέωση και να δώσεις πρόσβαση στη διαχείριση της συνδρομής. Αν χρησιμοποιείς Sign in with Apple, πρόβλεψε επίσης την κατάλληλη ανάκληση των tokens. Στο πλάνο τεστ σου, ξεχώρισε την εξαφάνιση του λογαριασμού, την κατάσταση της πληρωμένης πρόσβασης και τη διαχείριση της συνδρομής.
Αρκεί να διαγράψεις τον χρήστη στο Supabase Auth;
Όχι, η διαγραφή ενός χρήστη Auth δεν αποδεικνύει ότι όλα τα αντικείμενα του προϊόντος σου έχουν διαχειριστεί. Σύμφωνα με την τεκμηρίωση του Supabase, ένας χρήστης που κατέχει αντικείμενα Storage δεν μπορεί να διαγραφεί όσο αυτό δεν έχει λυθεί. Επίσης, η διαγραφή ενός χρήστη δεν αποσυνδέει αμέσως όλα τα JWT που έχουν ήδη εκδοθεί. Πρόβλεψε μια διαδικασία στον server που ελέγχει την ταυτότητα του αιτούντος.
Πώς τεστάρεις τη διαγραφή λογαριασμού πριν την υποβολή στην Apple;
Χρησιμοποίησε λογαριασμό δοκιμών και φανταστικά δεδομένα σε ένα test build. Εκτέλεσε έξι περιπτώσεις: ακύρωση, διαγραφή γεμάτου λογαριασμού, αποσύνδεση δικτύου, νέα προσπάθεια μετά από μερική αποτυχία, άνοιγμα δεύτερης συνεδρίας, νέος λογαριασμός με το ίδιο email αν επιτρέπεται. Έλεγξε τα δεδομένα και τη ροή: η απουσία σφάλματος στην κονσόλα δεν αρκεί. Για να μοιράσεις το build σου, ακολούθησε τον οδηγό TestFlight.