Guideline 2.1: απόρριψη App Store και πώς τη διορθώνεις
Από Mehdi Azizi
Ενημερώθηκε στις , 9 λ.
Guideline 2.1 App Completeness: τι καλύπτει, πώς δοκιμάζει η Apple την app σου, τι απαντάς στον reviewer και 3 πραγματικές απορρίψεις στις apps μου.
Η guideline 2.1 είναι ο κανόνας που ρίχνει τις περισσότερες υποβολές. Το γράφει η ίδια η Apple στη σελίδα App Review: κατά μέσο όρο, πάνω από το 40 % των προβλημάτων που μένουν άλυτα αφορούν την 2.1, αυτήν που καλύπτει τα crash, το προσωρινό περιεχόμενο και τις ελλιπείς πληροφορίες.
Αυτό το άρθρο ασχολείται μόνο με αυτόν τον κανόνα: τι καλύπτει, τις δύο παραλλαγές του, πώς ο reviewer δοκιμάζει την εφαρμογή σου και τι του απαντάς, με τρεις απορρίψεις που έφαγα στις δικές μου εφαρμογές. Για τη συνολική εικόνα όλων των λόγων απόρριψης, διάβασε καλύτερα το γιατί η Apple απορρίπτει μια εφαρμογή.
Τι είναι η guideline 2.1 App Completeness;
Η guideline 2.1 απαιτεί η εφαρμογή που στέλνεις στην Apple να είναι τελική και πλήρης έκδοση: χωρίς crash, χωρίς νεκρά links, χωρίς προσωρινό κείμενο, με λογαριασμό επίδειξης αν η εφαρμογή ζητάει σύνδεση, και με αγορές εντός εφαρμογής ορατές και λειτουργικές. Αν ο reviewer δεν μπορεί να διασχίσει την εφαρμογή σου μέχρι το τέλος, είναι απόρριψη 2.1.
Το επίσημο κείμενο βρίσκεται στις App Review Guidelines, ενότητα 2 «Performance». Χωρίζεται σε δύο εδάφια.
Το 2.1(a) ζητάει κάθε υποβολή να είναι τελική έκδοση, με όλα τα metadata της και URL που λειτουργούν. Το προσωρινό κείμενο, τα άδεια sites και κάθε προσωρινό περιεχόμενο πρέπει να εξαφανιστούν πριν την αποστολή. Η εφαρμογή πρέπει να έχει δοκιμαστεί σε πραγματική συσκευή για bugs και σταθερότητα. Αν ζητάει σύνδεση, δίνεις λογαριασμό επίδειξης και κρατάς τον server σου ανοιχτό. Ένα ενσωματωμένο demo mode μπορεί να αντικαταστήσει αυτόν τον λογαριασμό, αλλά μόνο με προηγούμενη έγκριση της Apple, και πρέπει να δείχνει όλες τις λειτουργίες της εφαρμογής. Η φράση που τα συνοψίζει όλα: «We will reject incomplete app bundles and binaries that crash».
Το 2.1(b) αφορά τις αγορές εντός εφαρμογής: πρέπει να είναι πλήρεις, ενημερωμένες, ορατές στον reviewer και λειτουργικές. Αν μια αγορά ρυθμισμένη στο App Store Connect δεν βρίσκεται μέσα στην εφαρμογή, πρέπει να εξηγήσεις γιατί στις σημειώσεις για το review.
Τι καλύπτει στην πράξη η guideline 2.1
Στην πράξη, μια απόρριψη 2.1 έρχεται για έναν από αυτούς τους λόγους:
- Ένα crash. Στο άνοιγμα, μετά από μια άδεια που απορρίφθηκε, χωρίς δίκτυο. Ένα αρκεί.
- Ένα νεκρό link. Απόρρητο, όροι χρήσης, υποστήριξη: κάθε δηλωμένο URL θα ανοιχτεί.
- Μια λειτουργία απρόσιτη. Ένα κουμπί που δεν οδηγεί πουθενά, μια υποχρεωτική οθόνη που δεν περνιέται, ένα onboarding χωρίς έξοδο. Η πιο ύπουλη μορφή: αόρατη στο δικό σου κινητό.
- Λογαριασμός επίδειξης που λείπει ή έχει λήξει. Ο reviewer μένει κολλημένος στην οθόνη σύνδεσης, ή ο λογαριασμός που έδωσες δεν δουλεύει πια, ή ο server είναι κλειστός.
- Περιεχόμενο-γέμισμα. Lorem ipsum, «Έρχεται σύντομα», άδεια οθόνη, ορατά δεδομένα δοκιμής.
- Αγορές εντός εφαρμογής που δεν βρίσκονται. Η συνδρομή υπάρχει στο App Store Connect, αλλά ο reviewer δεν βρίσκει την οθόνη που την πουλάει, ή η αγορά αποτυγχάνει στο sandbox. Τα πιο συνηθισμένα λάθη στην οθόνη πληρωμής είναι στο paywall iOS: 7 λάθη αρχαρίου.
2.1 Information Needed ή 2.1(a): ποια η διαφορά;
Τα μηνύματα της Apple δεν έχουν όλα τον ίδιο τίτλο, και η διαφορά αλλάζει την απάντησή σου.
Το «Guideline 2.1 - Information Needed» σημαίνει ότι ο reviewer δεν μπόρεσε να ολοκληρώσει το review και σου κάνει μια ερώτηση. Λείπει ένα στοιχείο σύνδεσης, μια εξήγηση, ένας τρόπος να φτάσει σε μια λειτουργία. Δεν είναι ακόμα διαπίστωση bug: είναι αίτημα. Μερικές φορές αρκεί μια ακριβής απάντηση στο App Store Connect. Αν όμως η ερώτηση αποκαλύπτει πραγματικό μπλοκάρισμα στην εφαρμογή, χρειάζεται νέο build.
Το «Guideline 2.1(a) - Performance - App Completeness» σημαίνει ότι ο reviewer διαπίστωσε πρόβλημα: crash, bug, μια οθόνη που δεν αποκρίνεται. Το μήνυμα συνήθως αναφέρει τη συσκευή που χρησιμοποιήθηκε και συχνά επισυνάπτει screenshot. Εδώ πρέπει να διορθώσεις, να ξαναστείλεις build και μετά να απαντήσεις.
Πώς δοκιμάζει η Apple την εφαρμογή σου
Βάλε τον εαυτό σου στη θέση του reviewer. Μετράνε τρία πράγματα.
Δοκιμάζει σε συσκευή που μπορεί να μην έχεις. Το μήνυμα απόρριψης συχνά αναφέρει το μοντέλο. Ο κανόνας 2.4.1 λέει ότι οι εφαρμογές iPhone πρέπει να τρέχουν σε iPad όπου είναι δυνατόν, και μια εφαρμογή σχεδιασμένη για iPhone εμφανίζεται εκεί σε compatibility mode, σε παράθυρο διαστάσεων iPhone. Οι πρόσφατες απορρίψεις 2.1 μου ήρθαν από iPad Air: αν δοκιμάζεις μόνο στο iPhone σου, δεν βλέπεις αυτό που βλέπει ο reviewer.
Ξεκινάει από πρώτο άνοιγμα. Καινούργια εφαρμογή, χωρίς cache, χωρίς session, χωρίς κατεβασμένη ενημέρωση.
Το δίκτυο πρέπει να δουλεύει μόνο με IPv6. Ο κανόνας 2.5.5, γείτονας της guideline 2.5.4 για τα background modes, απαιτεί η εφαρμογή να λειτουργεί πλήρως σε δίκτυο μόνο IPv6, και η σελίδα υποστήριξης της Apple για το IPv6 το κάνει απαίτηση για όλες τις εφαρμογές που υποβάλλονται από την 1η Ιουνίου 2016. Ο κίνδυνος έρχεται από μια διεύθυνση IPv4 γραμμένη hardcoded: η Apple συνιστά δοκιμή σε δίκτυο μόνο IPv6, με τα κινητά δεδομένα κλειστά.
Για να αναπαράγεις αυτές τις συνθήκες πριν την αποστολή, το TestFlight σε πολλές συσκευές είναι ο πιο απλός τρόπος: δες το TestFlight: δοκίμασε την εφαρμογή iPhone σου.
Τρεις απορρίψεις που έφαγα, και η πραγματική τους αιτία
Τρεις πρόσφατες απορρίψεις στις δικές μου εφαρμογές, με την πραγματική τους αιτία.
Solys: ένα demo mini-game που δεν κερδιζόταν σε iPad
Το Solys είναι το ξυπνητήρι μου με mini-games. Στις 18 Αυγούστου 2026, ένα build απορρίπτεται με «2.1 Information Needed»: η Apple ζητάει τρόπο να περάσει την αποστολή του παιχνιδιού. Ο reviewer δοκίμαζε σε iPad Air, με την εφαρμογή iPhone σε compatibility mode.
Η πραγματική αιτία ήταν στο demo mini-game του onboarding. Τα ύψη των εμποδίων ήταν γραμμένα σε σταθερά points. Στο διαθέσιμο ύψος της κάρτας στο iPad σε compatibility mode, το πέρασμα γινόταν στενότερο από τον χαρακτήρα: το demo ήταν αδύνατο να κερδηθεί. Και το κουμπί «Συνέχεια» ενεργοποιούνταν μόνο σε περίπτωση νίκης. Καμία διέξοδος: ο reviewer δεν μπορούσε να δει την εφαρμογή.
Η διόρθωση: γεωμετρία αναλογική με το μετρημένο μέγεθος της κάρτας, και ένα link «Παράλειψη demo» που εμφανίζεται μετά από ήττα.
Το μάθημα: κάθε βήμα που μπλοκάρεται από μια επίδοση πρέπει να έχει έξοδο χωρίς όρους. Και κάθε υποχρεωτική οθόνη δοκιμάζεται στη μικρότερη υποστηριζόμενη οθόνη ΚΑΙ σε iPad σε compatibility mode.
Nolera: μια διόρθωση αόρατη για τον reviewer
Στις 17 Σεπτεμβρίου 2026, το Nolera απορρίπτεται μετά από review σε iPad Air. Το μήνυμα συνδύαζε την 2.1(a) με άλλα σημεία. Η διόρθωση του προβλήματος που αναφέρθηκε είχε παραδοθεί με απομακρυσμένη ενημέρωση (OTA), χωρίς νέο build.
Το πρόβλημα: στο πρώτο-πρώτο άνοιγμα, ο reviewer βλέπει τον κώδικα που είναι ενσωματωμένος στο build, όχι την ενημέρωση που κατεβαίνει μετά. Για εκείνον, η διόρθωση δεν υπήρχε.
Το μάθημα: μια διόρθωση που προορίζεται για το review πρέπει να βρίσκεται μέσα στο binary που στέλνεις στην Apple.
Clic: η αιτία δεν ήταν στην εφαρμογή
Στις 16 Σεπτεμβρίου 2026, το Clic απορρίπτεται. Η εφαρμογή καθαυτή ήταν ενημερωμένη. Η πραγματική αιτία ήταν αλλού: η πολιτική απορρήτου που ήταν δημοσιευμένη online δεν ήταν ενημερωμένη για τον πάροχο AI που χρησιμοποιούσα. Αυτή η απόρριψη αφορά περισσότερο το απόρρητο παρά την 2.1, αλλά δείχνει το ίδιο πράγμα: οι πραγματικές αιτίες δεν είναι πάντα αυτές που αφήνει να εννοηθεί το μήνυμα.
Το μάθημα: έλεγξε τι είναι online, όχι τι είναι στο 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.
Σημειώσεις review και λογαριασμός demo
Η ενότητα App Review Information της έκδοσής σου, στο App Store Connect, είναι η καλύτερη άμυνά σου απέναντι στην 2.1. Σύμφωνα με την επίσημη τεκμηρίωση αυτών των πεδίων, περιέχει:
- Sign-in required: το όνομα χρήστη και τον κωδικό ενός λογαριασμού επίδειξης. Αυτός ο λογαριασμός δεν πρέπει να λήγει. Αν η εφαρμογή σου χρησιμοποιεί σύνδεση τρίτου, δώσε τα στοιχεία σύνδεσης αυτής της υπηρεσίας.
- Notes: έως 4.000 bytes, σε όποια γλώσσα θέλεις. Οτιδήποτε βοηθάει στη δοκιμή.
- Contact: όνομα, e-mail και αριθμός τηλεφώνου σε διεθνή μορφή.
Τι βάζω πάντα στις σημειώσεις:
- Τη διαδρομή προς κάθε αγορά εντός εφαρμογής, όπως ζητάει ο κανόνας 2.1(b).
- Τις μη προφανείς λειτουργίες: μια χειρονομία, μια άδεια, περιεχόμενο που εξαρτάται από την ώρα.
- Την κατάσταση του λογαριασμού demo: συνδρομητής ή όχι, προσυμπληρωμένα ή άδεια δεδομένα.
- Τους γνωστούς περιορισμούς: για hardware ή περιβάλλον δύσκολο να αναπαραχθεί, η Apple ζητάει να είσαι έτοιμος να δώσεις βίντεο.
Και ένας κανόνας εκτός φόρμας: κράτα τον server σου ανοιχτό σε όλη τη διάρκεια του review. Ένας server δοκιμών που έκλεισε σημαίνει λογαριασμός demo που δεν δουλεύει, άρα απόρριψη 2.1.
Η checklist 2.1 πριν την υποβολή
Αυτή που εφαρμόζω πριν από κάθε αποστολή, χτισμένη πάνω στις απορρίψεις μου:
- Εφαρμογή εγκατεστημένη από το μηδέν στο μικρότερο υποστηριζόμενο iPhone, στο μεγαλύτερο, και σε iPad σε compatibility mode
- Onboarding ολόκληρο, με σκόπιμη αποτυχία σε κάθε βήμα που ζητάει επίδοση
- Κάθε υποχρεωτική οθόνη με έξοδο χωρίς όρους
- Καμία διόρθωση για το review παραδομένη μόνο με απομακρυσμένη ενημέρωση
- Εφαρμογή ανοιγμένη σε λειτουργία πτήσης και μετά σε δίκτυο μόνο IPv6
- Κάθε δηλωμένο URL ανοιγμένο την ίδια μέρα: απόρρητο, όροι, υποστήριξη
- Κανένα προσωρινό κείμενο, άδεια οθόνη ή ορατά δεδομένα δοκιμής
- Λογαριασμός demo δοκιμασμένος τη μέρα της αποστολής, χωρίς ημερομηνία λήξης, server ανοιχτός
- Κάθε αγορά εντός εφαρμογής βρέθηκε μέσα από την εφαρμογή και δοκιμάστηκε στο sandbox, μαζί με την επαναφορά
- Σημειώσεις review που λένε πού βρίσκονται οι αγορές και οι μη προφανείς λειτουργίες
Αν είναι η πρώτη σου δημοσίευση, όλα τα προηγούμενα βήματα είναι στο δημοσίευση εφαρμογής στο App Store.
Στείλε τον φάκελό σου με κάποιον που έχει ήδη φάει αυτές τις απορρίψεις
Το Apple Review Kit συγκεντρώνει τη checklist μου πριν την αποστολή, τα πρότυπα σημειώσεων για τον reviewer και skills για Claude Code που ελέγχουν το project σου πριν το υποβάλεις.
Μόλις έφαγες απόρριψη 2.1; Το kit σε βοηθάει επίσης να βρεις τον κανόνα που αναφέρεται, τι ζητάει, και ένα παράδειγμα διόρθωσης και απάντησης. Αν θέλεις να δούμε τον φάκελό σου μαζί από τώρα, κλείσε μια ώρα μαζί μου, σε βιντεοκλήση.
Κανείς δεν μπορεί να εγγυηθεί ότι η Apple θα εγκρίνει την εφαρμογή σου. Αυτό που μπορώ να κάνω είναι να σε βοηθήσω να αποφύγεις τις απορρίψεις 2.1 που εγώ ήδη πλήρωσα με έναν κύκλο review.
Δεν έχεις στείλει ακόμα την εφαρμογή σου; Η δωρεάν διάγνωση σου στέλνει τη checklist μου κατά των απορρίψεων της Apple, μαζί με τον κανόνα 2.1, και σου λέει τι μένει να κάνεις πριν την αποστολή. Αν ακόμα τη χτίζεις, η αρχική σελίδα δείχνει πώς να φτιάξεις μια εφαρμογή για κινητά έχοντας το review στο μυαλό σου από την αρχή.
Συχνές ερωτήσεις
Τι σημαίνει «Guideline 2.1 - Information Needed»;
Ο reviewer δεν μπόρεσε να ολοκληρώσει το review και σου κάνει μια ερώτηση: ένα στοιχείο σύνδεσης, μια εξήγηση, έναν τρόπο πρόσβασης σε μια λειτουργία. Απάντησε με ακρίβεια στο App Store Connect. Αν η ερώτηση αποκαλύπτει πραγματικό μπλοκάρισμα στην εφαρμογή, όπως στο Solys, διόρθωσέ το και στείλε νέο build.
Χρειάζεται νέο build μετά από απόρριψη 2.1;
Για crash, bug ή οθόνη που μπλοκάρει, ναι: η διόρθωση πρέπει να είναι μέσα στο binary. Μια απομακρυσμένη ενημέρωση δεν αρκεί, γιατί ο reviewer βλέπει τον ενσωματωμένο κώδικα στο πρώτο άνοιγμα. Για μια απλή πληροφορία που λείπει, μπορεί να αρκεί μια απάντηση.
Η εφαρμογή μου ζητάει σύνδεση: τι δίνω στον reviewer;
Έναν λογαριασμό επίδειξης που δεν λήγει, συμπληρωμένο στην ενότητα App Review Information, και server ανοιχτό σε όλη τη διάρκεια του review. Ένα ενσωματωμένο demo mode μπορεί να αντικαταστήσει τον λογαριασμό μόνο με προηγούμενη έγκριση της Apple, και πρέπει να δείχνει όλες τις λειτουργίες.
Μπορεί μια απόρριψη 2.1 να οφείλεται σε κάτι άλλο εκτός από την εφαρμογή;
Ναι. Ένα νεκρό URL στη σελίδα της εφαρμογής, ένας ληγμένος λογαριασμός demo, ένας κλειστός server ή μια λάθος ρυθμισμένη αγορά εντός εφαρμογής αρκούν. Και μερικές φορές, όπως στο Clic, η πραγματική αιτία είναι online και όχι στον κώδικα: έλεγξε ό,τι μπορεί να ανοίξει ο reviewer.