מחיקת חשבון באפליקציית iOS: מה לבדוק לפני Apple
מאת Mehdi Azizi
עודכן ב-, 7 דק׳
כפתור מחיקה, נתונים קשורים, מנוי והתחברות מחדש: רשימת בדיקות מעשית לתהליך הזה לפני ששולחים ל-App Review.
כפתור לא מספיק: צריך לבדוק מה באמת נעלם
אם האפליקציה שלך מאפשרת ליצור חשבון, Apple דורשת שהמשתמש יוכל להתחיל את מחיקתו מתוך האפליקציה. השבתה פשוטה לא עומדת בדרישה הזאת. התהליך צריך להיות קל למציאה ולהסביר את ההשלכות שלו. אם חלק ממנו מסתיים באתר, הקישור צריך להוביל ישירות לעמוד הרלוונטי. מקור: מחיקת חשבון לפי Apple.
כלומר, העבודה לא נגמרת בכפתור אדום בהגדרות. צריך למפות את הנתונים, לבצע את המחיקה בצד השרת, לטפל בשגיאות ולבדוק מה המשתמש רואה אחר כך. המדריך הזה מציע רשימת בדיקות מוצרית וטכנית; נתונים שחלה עליהם חובת שמירה דורשים טיפול שמותאם לפעילות שלך.
להתחיל במפת נתונים
ניקח אפליקציה דמיונית של יומן קריאה. יש בה חשבון, פרופיל, הערות פרטיות ותמונות כריכה שהמשתמש הוסיף. הדוגמה הבאה מתארת תוכנית לבדיקה, לא מחיקה שכבר בוצעה באפליקציה של Devoria.
- זהות ההתחברות: איך הופכים את החשבון ללא שמיש אחרי המחיקה?
- פרופיל והערות: אילו שורות שייכות לאדם הזה ואיך הן נמחקות?
- תמונות שמורות: איזה תהליך מסיר את הקבצים ואת ההפניות אליהם?
- מטמון בטלפון: האם המסך מוחק את הנתונים המקומיים רק כשהפעולה באמת הצליחה?
- שירותי צד שלישי: האם הנתונים שקשורים לחשבון הזה דורשים מחיקה נפרדת?
- נתונים שצריך לשמור: אילו, בגלל איזו חובה, ואיך מיידעים את המשתמש?
המפה הזאת חוסכת לך לגלות בדיעבד שתמונה עדיין נגישה כשרשומת המשתמש כבר נעלמה. היא גם נותנת לך את הפריטים שצריך לחפש בבדיקות.
תהליך ברור בארבעה מצבים
הנה הצעה לאפליקציה הדמיונית, שצריך להתאים להשלכות האמיתיות של המוצר שלך:
- הגדרות החשבון. כניסה בשם "מחיקת החשבון שלי" נשארת נגישה.
- אישור. המסך מתאר את הנתונים שיימחקו ומציג פעולת ביטול ברורה בדיוק כמו פעולת המחיקה.
- עיבוד. הכפתור מונע בקשות כפולות והממשק מראה שהפעולה מתבצעת.
- תוצאה. הצלחה מאושרת פותחת את מצב ההתנתקות. כישלון משאיר הודעה מועילה ודרך לנסות שוב, בלי להעמיד פנים שהחשבון נעלם.
אם העיבוד לוקח זמן, Apple מקבלת תהליך מושהה בתנאי שמיידעים את המשתמש ומאשרים את הסיום. האפליקציה לא צריכה לגרום לחשוב שהמחיקה הסתיימה כשרק הבקשה נרשמה. אותו תיעוד של Apple מפרט גם את מקרי האימות מחדש ואת החריגים לפעילויות בפיקוח רגולטורי הדוק.
מה צריך לצפות מראש עם Supabase
מחיקת משתמש ב-Auth לא מוכיחה, לבדה, שכל האובייקטים של המוצר שלך טופלו. Supabase מסבירה למשל שאי אפשר למחוק משתמש שיש לו אובייקטים ב-Storage עד שהמצב הזה נפתר. התיעוד מציין גם שמחיקת משתמש לא מנתקת מיד את כל ה-JWT שכבר הונפקו: צריך לקחת את תוקפם בחשבון בתכנון. מקור: ניהול משתמשים ב-Supabase.
אז תגדיר תהליך בצד השרת שבודק את זהות המבקש ואת המשאבים ששייכים לו. אל תסמוך על מזהה שהטלפון שולח בחופשיות כדי לבחור איזה חשבון למחוק. הרשאות הניהול נשארות בצד השרת, בהתאם לתיעוד המפתחות של Supabase.
בתהליך מרובה שלבים, תחליט מה ניסיון חוזר צריך לעשות אם שלב ראשון הצליח והבא נכשל. למשל, אם הקבצים כבר הוסרו, בקשה חדשה לא צריכה להיכשל רק בגלל שהם חסרים. זה תרחיש שכותבים לפני הבדיקה, לא התנהגות שמניחים.
חשבון ומנוי: שתי בדיקות נפרדות
משתמש יכול למחוק את החשבון שלו בזמן שמנוי Apple ממשיך. Apple דורשת להסביר מה יקרה עם החיוב ולתת גישה לניהול המנוי. תתכנן גם ביטול מתאים של הטוקנים אם אתה משתמש ב-Sign in with Apple. הנקודות האלה מפורטות בהנחיות של Apple על מחיקה.
אז בתוכנית הבדיקות שלך, תפריד בין היעלמות החשבון, מצב הגישה בתשלום וניהול המנוי. המדריך מנוי או רכישה חד-פעמית עוזר למקם את התהליך הזה במודל העסקי שלך.
רשימת הבדיקות להריץ על build בדיקה
תשתמש רק בחשבון בדיקה ובנתונים פיקטיביים. תרשום את ה-build, המכשיר, התוצאה שנצפתה והמגבלות של כל בדיקה.
- ביטול. החשבון והנתונים נשארים נגישים.
- מחיקת חשבון מלא. המצב הסופי תואם לתהליך שהוצהר; הנתונים הרלוונטיים באמת הוסרו.
- ניתוק הרשת. האפליקציה לא מציגה הצלחה מזויפת.
- ניסיון חוזר אחרי כישלון חלקי. הבקשה יכולה להצליח בלי לפגוע בנתונים אחרים.
- פתיחת סשן שני. הגישות הישנות מטופלות לפי המנגנון שתוכנן.
- יצירת חשבון מחדש עם אותה כתובת, אם מותר. הנתונים הפרטיים הישנים לא מופיעים שוב.
תוסיף את המקרים האלה לטבלת הבדיקות של Devoria. כדי להפיץ אותם לבודקים, תעקוב אחרי המדריך ל-TestFlight. היעדר הודעת שגיאה בקונסול לא מחליף בדיקה של הנתונים ושל התהליך.
להתכונן לשליחה ל-App Review
בהערות לבודקים, תסביר איפה נמצאת הפעולה ואיך לבדוק אותה. אם שלב כלשהו תלוי בשירות, תוודא שהוא זמין במהלך הבדיקה. אל תשתמש בהערות כדי להבטיח פיצ'ר שעדיין לא קיים ב-build ששלחת.
העמוד אפליקציה שנדחתה על ידי Apple עוזר לארגן תשובה כשבעיה כבר דווחה. כדי להכין אותה, ה-Apple Review Kit עוזר לך למצוא את הכלל שצוטט, מה הוא דורש, ודוגמה לתיקון ולתשובה.
אם אתה מכין את השליחה הראשונה שלך, האבחון החינמי אומר לך מה נשאר לעשות ושולח לך את הצ'קליסט שלי נגד דחיות של Apple, כולל מחיקת חשבון. אם Apple כבר דחתה את האפליקציה שלך, תקבע איתי שעה: נקרא את ההודעה ביחד, בשיחת וידאו.
שאלות נפוצות
האם מחיקת חשבון היא חובה באפליקציית iOS?
כן, אם האפליקציה שלך מאפשרת ליצור חשבון: Apple דורשת שהמשתמש יוכל להתחיל את המחיקה מתוך האפליקציה. השבתה פשוטה לא עומדת בדרישה. התהליך צריך להיות קל למציאה ולהסביר את ההשלכות שלו. אם חלק ממנו מסתיים באתר, הקישור צריך להוביל ישירות לעמוד הרלוונטי.
מה צריך למחוק כשמשתמש מוחק את החשבון שלו?
כל מה ששייך לו, לא רק את רשומת המשתמש. תכין רשימה: זהות ההתחברות, הפרופיל והתוכן שנוצר, קבצים שמורים וההפניות אליהם, המטמון בטלפון, נתונים אצל שירותי צד שלישי. תרשום גם את הנתונים שצריך לשמור, בגלל איזו חובה, ותיידע את המשתמש. בלי המיפוי הזה, תמונה יכולה להישאר נגישה כשרשומת המשתמש כבר נעלמה.
האם Apple מקבלת מחיקת חשבון שאינה מיידית?
כן. אם העיבוד לוקח זמן, Apple מקבלת תהליך מושהה בתנאי שמיידעים את המשתמש ומאשרים את הסיום. האפליקציה לא צריכה לגרום לחשוב שהמחיקה הסתיימה כשרק הבקשה נרשמה. במקרה של כישלון, תשאיר הודעה מועילה ודרך לנסות שוב, בלי להעמיד פנים שהחשבון נעלם.
מה קורה למנוי כשהמשתמש מוחק את החשבון?
מנוי Apple יכול להמשיך אחרי מחיקת החשבון. Apple דורשת להסביר מה יקרה עם החיוב ולתת גישה לניהול המנוי. אם אתה משתמש ב-Sign in with Apple, תתכנן גם ביטול מתאים של הטוקנים. בתוכנית הבדיקות, תפריד בין היעלמות החשבון, מצב הגישה בתשלום וניהול המנוי.
האם מספיק למחוק את המשתמש ב-Supabase Auth?
לא, מחיקת משתמש ב-Auth לא מוכיחה שכל האובייקטים של המוצר שלך טופלו. לפי התיעוד של Supabase, אי אפשר למחוק משתמש שיש לו אובייקטים ב-Storage עד שהנקודה הזאת נפתרת. מחיקת משתמש גם לא מנתקת מיד את כל ה-JWT שכבר הונפקו. תתכנן תהליך בצד השרת שבודק את זהות המבקש.
איך בודקים מחיקת חשבון לפני השליחה ל-Apple?
תשתמש בחשבון בדיקה ובנתונים פיקטיביים על build בדיקה. תריץ שישה מקרים: ביטול, מחיקת חשבון מלא, ניתוק הרשת, ניסיון חוזר אחרי כישלון חלקי, פתיחת סשן שני, יצירת חשבון מחדש עם אותה כתובת אם זה מותר. תבדוק את הנתונים ואת התהליך: היעדר שגיאה בקונסול לא מספיק. כדי להפיץ את ה-build, תעקוב אחרי המדריך ל-TestFlight.