Guideline 2.1: להבין ולתקן דחייה ב-App Store
מאת Mehdi Azizi
עודכן ב-, 9 דק׳
Guideline 2.1 App Completeness: מה הכלל מכסה, איך Apple בודקת את האפליקציה, מה לענות ל-reviewer ו-3 דחיות אמיתיות שקיבלתי על האפליקציות שלי.
ה-guideline 2.1 הוא הכלל שמפיל הכי הרבה הגשות. Apple כותבת את זה בעצמה בדף ה-App Review שלה: בממוצע, יותר מ-40% מהבעיות שלא נפתרו קשורות ל-2.1, הכלל שמכסה קריסות, תוכן זמני ומידע חסר.
המאמר הזה עוסק רק בכלל הזה: מה הוא כולל, שתי הגרסאות שלו, איך ה-reviewer בודק את האפליקציה שלך ומה לענות לו, עם שלוש דחיות שקיבלתי על האפליקציות שלי. לתמונה המלאה של כל סיבות הדחייה, עדיף לקרוא את למה Apple דוחה אפליקציה.
מה זה guideline 2.1 App Completeness?
ה-guideline 2.1 דורש שהאפליקציה שנשלחת ל-Apple תהיה גרסה סופית ושלמה: בלי קריסות, בלי לינקים שבורים, בלי טקסט זמני, עם חשבון דמו אם האפליקציה דורשת התחברות, ועם רכישות בתוך האפליקציה שגלויות ועובדות. אם ה-reviewer לא מצליח לעבור על האפליקציה שלך עד הסוף, זו דחייה 2.1.
הטקסט הרשמי נמצא ב-App Review Guidelines, סעיף 2 "Performance". הוא מתחלק לשני סעיפי משנה.
2.1(a) דורש שכל הגשה תהיה גרסה סופית, עם כל המטא-דאטה וכתובות URL שעובדות. טקסט זמני, אתרים ריקים וכל תוכן זמני צריכים להיעלם לפני השליחה. האפליקציה צריכה להיבדק על מכשיר אמיתי מבחינת באגים ויציבות. אם היא דורשת התחברות, אתה מספק חשבון דמו ומשאיר את השרת דולק. מצב דמו מובנה יכול להחליף את החשבון הזה, אבל רק באישור מראש של Apple, והוא חייב להציג את כל הפונקציות של האפליקציה. המשפט שמסכם הכול: "We will reject incomplete app bundles and binaries that crash".
2.1(b) עוסק ברכישות בתוך האפליקציה: הן צריכות להיות שלמות, מעודכנות, גלויות ל-reviewer ועובדות. אם רכישה שהוגדרה ב-App Store Connect לא נמצאת באפליקציה, אתה צריך להסביר למה בהערות לבדיקה.
מה guideline 2.1 מכסה בפועל
בפועל, דחייה 2.1 נופלת מאחת הסיבות האלה:
- קריסה. בהפעלה, אחרי הרשאה שנדחתה, בלי רשת. מספיקה אחת.
- לינק שבור. פרטיות, תנאי שימוש, תמיכה: כל URL שהצהרת עליו ייפתח.
- פונקציה שאי אפשר להגיע אליה. כפתור שלא מוביל לשום מקום, מסך חובה שאי אפשר לעבור, onboarding בלי יציאה. הצורה הכי ערמומית: בלתי נראית בטלפון שלך.
- חשבון דמו חסר או שפג תוקפו. ה-reviewer נתקע במסך ההתחברות, או שהחשבון שסיפקת כבר לא עובד, או שהשרת כבוי.
- תוכן מילוי. Lorem ipsum, "בקרוב", מסך ריק, נתוני בדיקה גלויים.
- רכישות בתוך האפליקציה שאי אפשר למצוא. המנוי קיים ב-App Store Connect, אבל ה-reviewer לא מוצא את המסך שמוכר אותו, או שהרכישה נכשלת ב-sandbox. הטעויות הנפוצות ביותר במסך התשלום נמצאות בpaywall ב-iOS: 7 טעויות של מתחילים.
2.1 Information Needed או 2.1(a): מה ההבדל?
ההודעות של Apple לא כולן עם אותה כותרת, וההבדל משנה את התשובה שלך.
"Guideline 2.1 - Information Needed" אומר שה-reviewer לא הצליח לסיים את הבדיקה ושואל אותך שאלה. חסר פרט התחברות, הסבר, דרך להגיע לפונקציה. זה עוד לא קביעה של באג: זו בקשה. לפעמים מספיקה תשובה מדויקת ב-App Store Connect. אבל אם השאלה חושפת חסימה אמיתית באפליקציה, צריך build חדש.
"Guideline 2.1(a) - Performance - App Completeness" אומר שה-reviewer מצא בעיה: קריסה, באג, מסך שלא מגיב. ההודעה בדרך כלל מציינת את המכשיר שבו השתמש ולעיתים קרובות מצרפת צילום מסך. כאן צריך לתקן, לשלוח build חדש, ואז לענות.
איך Apple בודקת את האפליקציה שלך
שים את עצמך במקום ה-reviewer. שלוש נקודות חשובות.
הוא בודק על מכשיר שאולי אין לך. הודעת הדחייה מציינת לעיתים קרובות את הדגם. כלל 2.4.1 קובע שאפליקציות iPhone צריכות לרוץ על iPad כשאפשר, ואפליקציה שתוכננה ל-iPhone מוצגת שם במצב תאימות, בחלון בפורמט iPhone. דחיות 2.1 האחרונות שלי הגיעו מ-iPad Air: אם אתה בודק רק על ה-iPhone שלך, אתה לא רואה מה שה-reviewer רואה.
הוא מתחיל מהפעלה ראשונה. אפליקציה חדשה, בלי cache, בלי session, בלי עדכון שהורד.
הרשת חייבת לעבוד ב-IPv6 בלבד. כלל 2.5.5, השכן של guideline 2.5.4 על מצבי רקע, דורש שהאפליקציה תעבוד באופן מלא ברשת IPv6 בלבד, ודף התמיכה של Apple על IPv6 הופך את זה לדרישה לכל האפליקציות שהוגשו מאז 1 ביוני 2016. הסיכון מגיע מכתובת IPv4 שכתובה בקוד: Apple ממליצה לבדוק ברשת IPv6 בלבד, עם נתונים סלולריים כבויים.
כדי לשחזר את התנאים האלה לפני השליחה, TestFlight על כמה מכשירים זו הדרך הכי פשוטה: ראה TestFlight: לבדוק את אפליקציית ה-iPhone שלך.
שלוש דחיות שקיבלתי, והסיבה האמיתית שלהן
שלוש דחיות אחרונות על האפליקציות שלי, עם הסיבה האמיתית שלהן.
Solys: דמו של מיני-משחק שאי אפשר לנצח בו על iPad
Solys זה השעון המעורר שלי עם מיני-משחקים. ב-18 באוגוסט 2026, build נדחה ב-"2.1 Information Needed": Apple ביקשה דרך לעבור את משימת המשחק. ה-reviewer בדק על iPad Air, עם אפליקציית ה-iPhone במצב תאימות.
הסיבה האמיתית הייתה בדמו של המיני-משחק ב-onboarding. גובהי המכשולים היו כתובים בנקודות קבועות. בגובה הכרטיס הזמין על ה-iPad במצב תאימות, המעבר נהיה צר יותר מהדמות: אי אפשר היה לנצח בדמו. וכפתור "המשך" נדלק רק במקרה של ניצחון. בלי שום יציאה: ה-reviewer לא יכול היה לראות את האפליקציה.
התיקון: גיאומטריה פרופורציונלית לגודל הנמדד של הכרטיס, ולינק "דלג על הדמו" שמופיע אחרי הפסד.
הלקח: לכל שלב שנחסם בגלל ביצועים צריכה להיות יציאה בלי תנאי. וכל מסך חובה נבדק על המסך הכי קטן שנתמך וגם על iPad במצב תאימות.
Nolera: תיקון שה-reviewer לא ראה
ב-17 בספטמבר 2026, Nolera נדחתה אחרי בדיקה על iPad Air. ההודעה שילבה את 2.1(a) ונקודות נוספות. התיקון לבעיה שדווחה נשלח בעדכון מרחוק (OTA), בלי build חדש.
הבעיה: בהפעלה הראשונה, ה-reviewer רואה את הקוד שמוטמע ב-build, לא את העדכון שמורד אחר כך. מבחינתו, התיקון לא היה קיים.
הלקח: תיקון שמיועד לבדיקה חייב להיות בבינארי שנשלח ל-Apple.
Clic: הסיבה לא הייתה באפליקציה
ב-16 בספטמבר 2026, Clic נדחתה. האפליקציה עצמה הייתה מעודכנת. הסיבה האמיתית הייתה במקום אחר: מדיניות הפרטיות שפורסמה באונליין לא הייתה מעודכנת לגבי ספק ה-AI שבשימוש. הדחייה הזו שייכת יותר לפרטיות מאשר ל-2.1, אבל היא ממחישה את אותו דבר: הסיבות האמיתיות הן לא תמיד אלה שההודעה רומזת עליהן.
הלקח: תבדוק מה שנמצא באונליין, לא מה שנמצא ב-repo שלך. תפתח כל URL שהצהרת עליו ביום השליחה.
מה לענות ב-Resolution Center
אחרי דחייה, ההגשה שלך עוברת ל-"Unresolved Issues" והשיחה עם Apple מתנהלת באזור App Review של האפליקציה שלך, שעדיין קוראים לו Resolution Center. התהליך הרשמי כדי לענות ל-App Review מאפשר הודעה של עד 4,000 תווים, עם קובץ מצורף אחד.
תכתוב באנגלית, בפשטות. ה-reviewer רוצה שלושה דברים: מה חסם, מה השתנה, איך לבדוק את זה. הנה התבנית שאני משתמש בה (תחליף את מספר ה-build ואת התיקון בשלך):
Hello,
Thank you for your review.
Issue: the onboarding game demo could not be completed on iPad
(iPhone app running in compatibility mode), so the user could
not continue.
Fix in build 1.0.3 (42):
- The game layout now scales to the measured screen size.
- A "Skip demo" link appears after a failed attempt, so the
onboarding can always be completed.
How to verify: launch the app, start the onboarding demo,
lose once, then tap "Skip demo".
A screen recording is attached.
Best regards,
כמה כללים:
- תענה על השאלה שנשאלה. ב-"Information Needed", תתחיל בתשובה המדויקת, לא בהקשר.
- תציין את ה-build ותן את המסלול למסך המתוקן, בשלוש או ארבע פעולות.
- תצרף הוכחה. סרטון קצר על מכשיר דומה לזה של ה-reviewer חוסך עוד סבב.
- בלי נאומי הגנה. ערעור מול ה-App Review Board קיים, אבל על דחייה 2.1 מוצדקת הוא רק מאריך את ההמתנה. פירוט זמני ההמתנה נמצא בזמן אישור ב-App Store.
אם הסיבה עדיין לא ברורה אחרי הקריאה, כל התהליך נמצא בדף אפליקציה שנדחתה על ידי Apple.
הערות לבדיקה וחשבון דמו
האזור App Review Information של הגרסה שלך, ב-App Store Connect, הוא ההגנה הכי טובה שלך מול 2.1. לפי התיעוד הרשמי של השדות האלה, הוא כולל:
- Sign-in required: שם המשתמש והסיסמה של חשבון דמו. לחשבון הזה אסור לפוג. אם האפליקציה שלך עוברת דרך התחברות צד שלישי, תספק את פרטי ההתחברות לשירות הזה.
- Notes: עד 4,000 בתים, בשפה שתבחר. כל מה שעוזר לבדוק.
- Contact: שם, אימייל ומספר טלפון בפורמט בינלאומי.
מה שאני תמיד שם בהערות:
- המסלול לכל רכישה בתוך האפליקציה, כמו שכלל 2.1(b) דורש.
- הפונקציות שלא מובנות מאליהן: מחווה, הרשאה, תוכן שתלוי בשעה.
- מצב חשבון הדמו: מנוי או לא, נתונים ממולאים מראש או ריק.
- מגבלות ידועות: לחומרה או סביבה שקשה לשחזר, Apple מבקשת להיות מוכן לספק סרטון.
ועוד כלל מחוץ לטופס: תשאיר את השרת דולק לאורך כל הבדיקה. שרת בדיקות כבוי זה חשבון דמו שלא עובד, כלומר דחייה 2.1.
הצ'קליסט של 2.1 לפני הגשה
זה שאני מריץ לפני כל שליחה, בנוי על הדחיות שלי:
- אפליקציה שהותקנה מאפס על ה-iPhone הכי קטן שנתמך, על הכי גדול, ועל iPad במצב תאימות
- onboarding שעברתי עליו כולו, תוך כישלון מכוון בכל שלב שדורש ביצועים
- לכל מסך חובה יש יציאה בלי תנאי
- אף תיקון שמיועד לבדיקה לא נשלח רק בעדכון מרחוק
- האפליקציה הופעלה במצב טיסה, ואז ברשת IPv6 בלבד
- כל URL שהוצהר נפתח באותו יום: פרטיות, תנאים, תמיכה
- אין טקסט זמני, מסך ריק או נתוני בדיקה גלויים
- חשבון הדמו נבדק ביום השליחה, בלי תאריך תפוגה, השרת דולק
- כל רכישה בתוך האפליקציה נמצאה מתוך האפליקציה ונבדקה ב-sandbox, כולל שחזור
- הערות לבדיקה שמציינות איפה נמצאות הרכישות והפונקציות שלא מובנות מאליהן
אם זו ההגשה הראשונה שלך, כל השלבים שלפני כן נמצאים בלפרסם אפליקציה ב-App Store.
לשלוח את התיק שלך עם מישהו שכבר קיבל את הדחיות האלה
ה-Apple Review Kit מרכז את הצ'קליסט שלי לפני השליחה, תבניות הערות לבודק ו-skills של Claude Code שעוברים על הפרויקט שלך לפני שאתה מגיש אותו.
הרגע קיבלת דחייה 2.1? הקיט עוזר לך גם למצוא את הכלל שצוטט, מה הוא דורש, ודוגמה לתיקון ולתשובה. אם אתה רוצה שנעבור על התיק שלך ביחד כבר עכשיו, תזמין שעה איתי, בווידאו.
אף אחד לא יכול להבטיח ש-Apple תאשר את האפליקציה שלך. מה שאני יכול לעשות זה לעזור לך להימנע מדחיות 2.1 שכבר שילמתי עליהן בסבב בדיקה.
עוד לא שלחת את האפליקציה? האבחון החינמי שולח לך את הצ'קליסט שלי נגד דחיות של Apple, כולל כלל 2.1, ואומר לך מה נשאר לעשות לפני השליחה. אם אתה עדיין בשלב הבנייה, דף הבית מראה איך ליצור אפליקציה למובייל עם הבדיקה בראש מההתחלה.
שאלות נפוצות
מה המשמעות של "Guideline 2.1 - Information Needed"?
ה-reviewer לא הצליח לסיים את הבדיקה ושואל אותך שאלה: פרטי התחברות, הסבר, דרך להגיע לפונקציה. תענה בצורה מדויקת ב-App Store Connect. אם השאלה חושפת חסימה אמיתית באפליקציה, כמו ב-Solys, תתקן אותה ותשלח build חדש.
צריך build חדש אחרי דחייה 2.1?
לקריסה, באג או מסך חוסם, כן: התיקון חייב להיות בבינארי. עדכון מרחוק לא מספיק, כי ה-reviewer רואה את הקוד המוטמע בהפעלה הראשונה. למידע חסר בלבד, תשובה יכולה להספיק.
האפליקציה שלי דורשת התחברות: מה לספק ל-reviewer?
חשבון דמו שלא פג תוקפו, שמוזן באזור App Review Information, ושרת דולק לאורך כל הבדיקה. מצב דמו מובנה יכול להחליף את החשבון הזה רק באישור מראש של Apple, והוא חייב להציג את כל הפונקציות.
דחייה 2.1 יכולה להגיע ממשהו שהוא לא האפליקציה?
כן. URL שבור בדף האפליקציה, חשבון דמו שפג תוקפו, שרת כבוי או רכישה בתוך האפליקציה שהוגדרה לא נכון מספיקים. ולפעמים, כמו ב-Clic, הסיבה האמיתית נמצאת באונליין ולא בקוד: תבדוק כל מה שה-reviewer יכול לפתוח.