Guideline 3.1.2: απόρριψη εφαρμογής λόγω συνδρομής
Από Mehdi Azizi
Δημοσιεύτηκε στις , 9 λ.
Guideline 3.1.2: το ποσό χρέωσης πρέπει να είναι η πιο εμφανής τιμή του paywall, με διάρκεια, ανανέωση και συνδέσμους όρων. Δύο πραγματικές απορρίψεις και η λύση.
Η guideline 3.1.2 αφορά τις συνδρομές με αυτόματη ανανέωση. Αν την αναφέρει η Apple, έλεγξε δύο πράγματα: το ποσό που πραγματικά χρεώνεται πρέπει να είναι η πιο εμφανής τιμή του paywall σου, και τόσο η εφαρμογή όσο και η σελίδα της στο store πρέπει να δείχνουν τη διάρκεια, την τιμή και συνδέσμους που λειτουργούν προς τους όρους χρήσης και την πολιτική απορρήτου σου.
Έφαγα αυτή την απόρριψη σε δύο από τις εφαρμογές μου τον Οκτώβριο του 2026: στο Solys στις 10 και στο TradaZen στις 12. Το πρόβλημα ήταν η ίδια εμφάνιση: μια τιμή ανά εβδομάδα με μεγάλα γράμματα, το πραγματικό ποσό χρέωσης με μικρά. Παρακάτω θα βρεις το κείμενο του κανόνα, αυτές τις δύο περιπτώσεις και τη λίστα ελέγχου που εφαρμόζω πλέον. Για τους υπόλοιπους λόγους απόρριψης, διάβασε γιατί η Apple απορρίπτει μια εφαρμογή.
Τι λέει η guideline 3.1.2;
Η 3.1.2, «Subscriptions», βρίσκεται στην ενότητα 3 «Business» των App Review Guidelines, στο μέρος 3.1 «Payments». Από εκεί βγαίνει και ο τίτλος του email: «Guideline 3.1.2 - Business - Payments - Subscriptions». Έχει τρία εδάφια, και το γράμμα μέσα στην παρένθεση σου λέει πού να ψάξεις.
| Εδάφιο | Τι απαιτεί η Apple | Η τυπική απόρριψη |
|---|---|---|
| 3.1.2(a) Permissible uses | Συνεχής αξία, τουλάχιστον 7 ημέρες | Συνδρομή χωρίς περιεχόμενο που εξελίσσεται |
| 3.1.2(b) Upgrades and Downgrades | Αλλαγή πακέτου χωρίς διπλοχρέωση | Δύο πακέτα πληρωμένα ταυτόχρονα |
| 3.1.2(c) Subscription Information | Τι παίρνει ο χρήστης και σε ποια τιμή | Υπολογισμένη τιμή μεγαλύτερη από τη χρεωμένη |
Το κείμενο της 3.1.2(c) είναι σύντομο. Πριν ζητήσεις από κάποιον να εγγραφεί, πρέπει να «clearly describe what the user will get for the price»: να περιγράψεις καθαρά τι παίρνει για αυτή την τιμή. Στη συνέχεια παραπέμπει στο παράρτημα 2 (Schedule 2) της άδειας του προγράμματος προγραμματιστών. Αυτό το παράρτημα απαριθμεί όσα πρέπει να εμφανίζεις «clearly and conspicuously», καθαρά και εμφανώς:
- τον τίτλο της συνδρομής·
- τη διάρκειά της·
- την τιμή της, και την τιμή ανά μονάδα αν έχει νόημα·
- συνδέσμους προς την πολιτική απορρήτου και τους όρους χρήσης σου, προσβάσιμους μέσα στην εφαρμογή.
Ο κανόνας για το μέγεθος των τιμών βρίσκεται στη σελίδα της Apple για τις συνδρομές. Στη διαδρομή αγοράς, «the amount that will be billed must be the most prominent pricing element in the layout»: το ποσό που θα χρεωθεί πρέπει να είναι το πιο εμφανές στοιχείο τιμής. Ένα ισοδύναμο ανά μήνα ή μια έκπτωση επιτρέπονται, αρκεί να είναι σε δευτερεύουσα θέση και μικρότερα. Η ίδια σελίδα ζητά, για μια δωρεάν δοκιμή, να αναφέρεις τη διάρκειά της και την τιμή που χρεώνεται όταν λήξει.
Οι δύο απορρίψεις 3.1.2(c) που έφαγα
Solys: 0,38 € με μεγάλα, 19,99 € με μικρά
Το Solys είναι το ξυπνητήρι μου που αποκοιμίζει τα social σου. Στο paywall του onboarding, η κάρτα «Ετήσια» έδειχνε «0,38 €/εβδ.» σε 21 στιγμές και έντονα. Από κάτω, σε 15 στιγμές: «δηλαδή 19,99 €/έτος». Όμως χρεώνονται τα 19,99 €, όχι τα 0,38 €.
Στις 10 Οκτωβρίου 2026, η Apple απορρίπτει την έκδοση επικαλούμενη την 3.1.2(c). Το μήνυμα ζητά το ποσό χρέωσης να είναι το πιο καθαρό και πιο εμφανές στοιχείο τιμής. Η δωρεάν δοκιμή, η εισαγωγική τιμή και οι υπολογισμένες τιμές πρέπει να μένουν δευτερεύουσες. Η Apple αναφέρει τα κριτήριά της: γραμματοσειρά, μέγεθος, χρώμα και θέση.
Είχα κρατήσει αυτή την εμφάνιση εν γνώσει μου: μια προηγούμενη έκδοση του TradaZen, φτιαγμένη με την ίδια λογική, είχε εγκριθεί. Ήταν ρίσκο, και μου κόστισε έναν κύκλο review.
Η διόρθωση: «19,99 €/έτος» με μεγάλα, «δηλαδή 0,38 €/εβδ.» ως γκρι λεζάντα από κάτω, και στις 30 γλώσσες της εφαρμογής. Επειδή το paywall είναι μέσα στον κώδικα, χρειάστηκε νέο build πριν ξαναστείλω την έκδοση.
TradaZen: ο ίδιος λόγος, δύο μέρες αργότερα
Το TradaZen είναι ο προσομοιωτής trading μου. Στις 12 Οκτωβρίου 2026, η έκδοση 1.5.1 απορρίπτεται για τον ίδιο κανόνα. Το μήνυμα μιλά για μια τιμή «weekly calculated» που εμφανίζεται «more clearly and conspicuously than the billed amount»: το εβδομαδιαίο ισοδύναμο ήταν πιο εμφανές από το ποσό χρέωσης.
Η πρώτη μου διόρθωση δεν έφτανε, και το είδα πριν την αποστολή. Είχα μικρύνει το «0,92 €/εβδ» αφήνοντάς το δεξιά, στη γραμμή της τιμής. Όμως η κάρτα της εβδομαδιαίας συνδρομής έδειχνε, στην ίδια στήλη, την πραγματική της τιμή: «8,99 €/εβδ». Τα δύο ποσά διαβάζονταν στο ίδιο επίπεδο. Μια υπολογισμένη τιμή μέσα στη στήλη των πραγματικών τιμών διαβάζεται σαν τιμή χρέωσης, ακόμα κι αν είναι μικρή.
Η τελική διόρθωση: κάθε κάρτα δείχνει το ποσό χρέωσης με μεγάλα, δεξιά. Η τιμή ανά εβδομάδα γίνεται γκρι λεζάντα από κάτω. Αριστερά, μόνο το όνομα του πακέτου. Στο επόμενο review, η Apple δεν ανέφερε ξανά την 3.1.2(c).
Τα υπόλοιπα μαθήματα αυτής της εφαρμογής είναι στη μελέτη περίπτωσης του TradaZen.
Τι απέρριψε η Apple, τι πέρασε
Αυτές είναι οι πραγματικές εμφανίσεις, με τη σειρά, και το αποτέλεσμά τους.
| Εμφάνιση της τιμής | Αποτέλεσμα |
|---|---|
| TradaZen, παλαιότερη έκδοση: τιμή ανά εβδομάδα σε πρώτο πλάνο | Εγκρίθηκε σε προηγούμενο review |
| Solys: «0,38 €/εβδ.» έντονα, «19,99 €/έτος» από κάτω | Απορρίφθηκε 10/10/2026, 3.1.2(c) |
| TradaZen 1.5.1: τιμή ανά εβδομάδα πιο εμφανής από τη χρεωμένη | Απορρίφθηκε 12/10/2026, 3.1.2(c) |
| TradaZen: τιμή ανά εβδομάδα μικρότερη, αλλά στη στήλη των τιμών | Την απέρριψα εγώ πριν την αποστολή |
| TradaZen: χρεωμένη με μεγάλα δεξιά, εβδομάδα σε λεζάντα | Δεν αναφέρθηκε στο επόμενο review |
| Solys: «19,99 €/έτος» με μεγάλα, εβδομάδα σε γκρι λεζάντα | Διορθώθηκε και ξαναστάλθηκε |
Η πρώτη γραμμή είναι η πιο σημαντική. Ένα εγκεκριμένο review δεν επικυρώνει το paywall σου για το επόμενο. Κάθε έκδοση περνά ξανά από reviewer, που μπορεί να διαβάσει τον κανόνα πιο αυστηρά από τον προηγούμενο. Η μόνη ασφαλής εμφάνιση είναι αυτή που σέβεται το κείμενο.
Το ποσό που χρεώνεται είναι η μόνη τιμή με μεγάλα. Κάθε ισοδύναμο, ανά εβδομάδα, μήνα ή ημέρα, είναι μια μικρότερη και πιο αχνή λεζάντα, ποτέ στη θέση του.
Η λίστα ελέγχου για paywall συμβατό με την 3.1.2
Αυτή είναι η λίστα που περνάω πλέον σε κάθε paywall των εφαρμογών μου, πριν από κάθε αποστολή:
- Σε κάθε κάρτα, το ποσό χρέωσης είναι η μεγαλύτερη, με την περισσότερη αντίθεση και την καλύτερη θέση τιμή.
- Κάθε υπολογισμένη τιμή (ανά εβδομάδα, μήνα, ημέρα) είναι λεζάντα, μικρότερη και πιο αχνή, κάτω από το ποσό χρέωσης.
- Καμία υπολογισμένη τιμή δεν πιάνει τη στήλη όπου άλλο πακέτο δείχνει την πραγματική του τιμή.
- Η διάρκεια γράφεται καθαρά: «ανά έτος», «ανά εβδομάδα».
- Η δωρεάν δοκιμή αναφέρει τη διάρκειά της και το ποσό που χρεώνεται στο τέλος της.
- Μια πρόταση λέει ότι η συνδρομή ανανεώνεται αυτόματα και ακυρώνεται από τις ρυθμίσεις του λογαριασμού Apple.
- Τι ξεκλειδώνει η συνδρομή γράφεται πριν από το κουμπί αγοράς.
- Ένα κουμπί «Restore Purchases» είναι ορατό στο paywall.
- Οι σύνδεσμοι προς τους όρους χρήσης και την πολιτική απορρήτου είναι στο paywall και ανοίγουν.
- Αν προσφέρεις πολλά πακέτα, βρίσκονται σε ένα μόνο subscription group, όπως συστήνει η Apple.
- Η εμφάνιση ελέγχεται στο μικρότερο iPhone και με τη μεγαλύτερη τιμή. Στο TradaZen δοκιμάζω την τιμή σε βιετναμέζικο ντονγκ: ένα ποσό που αλλάζει γραμμή χαλάει την ιεραρχία.
Αν χρησιμοποιείς τα paywalls του RevenueCat, η τεκμηρίωση του RevenueCat κάνει την ίδια προειδοποίηση: μια μεταβλητή μηνιαίας τιμής μόνη της δεν αρκεί αν το ποσό χρέωσης και η περιοδικότητά του δεν εμφανίζονται κάπου αλλού. Η πλήρης σύνδεση είναι στο RevenueCat: στήσε μια συνδρομή in-app, και τα λάθη σχεδιασμού στο paywall iOS: 7 λάθη αρχαρίων.
Οι σύνδεσμοι όρων χρήσης και απορρήτου: στην εφαρμογή και στη σελίδα του store
Η άλλη μορφή απόρριψης 3.1.2 δεν αφορά το paywall, αλλά τα metadata. Τα μηνύματα που δημοσιεύουν προγραμματιστές στα φόρουμ της Apple διευκρινίζουν πού τα περιμένει: τον σύνδεσμο της πολιτικής απορρήτου στο αντίστοιχο πεδίο του App Store Connect, και τον σύνδεσμο των όρων χρήσης (EULA) στην περιγραφή ή στο πεδίο EULA.
Η παγίδα είναι η τυπική σύμβαση. Σύμφωνα με τη βοήθεια του App Store Connect, αν δεν προσθέσεις δική σου σύμβαση, ισχύει η τυπική σύμβαση της Apple και «the license agreement link isn't shown on your App Store product page»: δεν εμφανίζεται κανένας σύνδεσμος στη σελίδα σου. Αν χρησιμοποιείς την τυπική σύμβαση, εσύ πρέπει να βάλεις τον σύνδεσμό της στην περιγραφή, προς τη δική σου σελίδα όρων ή προς τη τυπική σύμβαση άδειας της Apple.
Στις εφαρμογές μου με συνδρομή, κλείνω την περιγραφή με δύο γραμμές, σε κάθε γλώσσα της σελίδας. Αυτό είναι το πρότυπο, προσάρμοσέ το στην προσφορά και στο domain σου:
Δωρεάν δοκιμή 7 ημερών, μετά ετήσια ή εβδομαδιαία συνδρομή,
με ακύρωση οποιαδήποτε στιγμή.
Όροι: https://your-domain.com/terms
Απόρρητο: https://your-domain.com/privacy
Άνοιξε και τους δύο συνδέσμους πριν τους επικολλήσεις: μια σελίδα που δεν βρίσκεται μετράει σαν σύνδεσμος που λείπει. Τι πρέπει να περιέχει η πολιτική εξηγείται στο πολιτική απορρήτου εφαρμογής, και η υπόλοιπη σελίδα του store στο ASO App Store.
Αυτό διορθώνεται χωρίς νέο build: η περιγραφή και τα πεδία του App Store Connect είναι metadata.
3.1.2(a): μια συνδρομή πρέπει να προσφέρει συνεχή αξία
Το άλλο εδάφιο που φέρνει απορρίψεις αφορά το μοντέλο, όχι την οθόνη. Η 3.1.2(a) ζητά «ongoing value»: αξία που συνεχίζεται στον χρόνο. Η περίοδος διαρκεί τουλάχιστον επτά ημέρες, και η συνδρομή λειτουργεί σε όλες τις συσκευές του χρήστη. Ο συνδρομητής παίρνει αυτό που πλήρωσε χωρίς επιπλέον υποχρέωση, όπως να κάνει post σε κάποιο social δίκτυο.
Αν η εφαρμογή σου προσφέρει μια υπηρεσία μία φορά και τέλος, μια εφάπαξ αγορά ίσως ταιριάζει καλύτερα. Τα δύο μοντέλα συγκρίνονται στο συνδρομή ή εφάπαξ αγορά.
Τι να απαντήσεις στην Apple μετά από απόρριψη 3.1.2
Η συζήτηση γίνεται στην ενότητα App Review της εφαρμογής σου. Η διαδικασία για να απαντήσεις στο App Review είναι ίδια με τους άλλους κανόνες. Υπάρχουν δύο περιπτώσεις:
- Το πρόβλημα είναι στην εφαρμογή (μέγεθος τιμών, αναφορές στο paywall): χρειάζεται νέο build, όπως στο Solys και στο TradaZen. Ο reviewer δοκιμάζει τον κώδικα που είναι μέσα στο build, το εξηγώ στον οδηγό για τη guideline 2.1.
- Το πρόβλημα είναι στη σελίδα του store (σύνδεσμοι που λείπουν ή δεν λειτουργούν): διορθώνεις τα metadata, απαντάς, και η ίδια υποβολή ξαναφεύγει.
Γράψε στα αγγλικά, λιτά: τι ήταν το πρόβλημα, τι άλλαξε, πώς ελέγχεται. Αυτό είναι το πρότυπο που χρησιμοποιώ (αντικατάστησε τον αριθμό build, τις τιμές και τη διαδρομή με τα δικά σου):
Hello,
Thank you for your review.
Issue: on the paywall, the weekly equivalent price was displayed
more prominently than the billed amount.
Fix in build X:
- Each plan now shows its billed amount (e.g. "€19.99/year")
as the largest price on the card.
- The weekly equivalent is a smaller grey caption below it.
- The paywall states the duration, the auto-renewal, and links
to our Terms of Use and Privacy Policy.
How to verify: launch the app and complete the onboarding.
The paywall appears at the end.
Best regards,
Διόρθωσε το paywall σου πριν την επόμενη αποστολή
Αν η εφαρμογή σου μόλις απορρίφθηκε με την 3.1.2, το Apple Review Kit σε βοηθά να βρεις τον κανόνα που αναφέρθηκε, τι ζητά, και ένα παράδειγμα διόρθωσης και απάντησης. Τα skills του για το Claude Code ελέγχουν επίσης το paywall και τη σελίδα σου πριν την αποστολή. Για ανθρώπινη ματιά, κλείσε μία ώρα μαζί μου: διαβάζουμε το μήνυμα της Apple και ξαναπιάνουμε το paywall σου στην οθόνη σου. Η πλήρης διαδικασία είναι στη σελίδα εφαρμογή που απορρίφθηκε από την Apple, και το στήσιμο της συνδρομής στη σελίδα συνδρομή in-app iOS.
Αν ετοιμάζεις την πρώτη σου κυκλοφορία, κάνε τη δωρεάν διάγνωση: βάζει τα βήματα σε σειρά και σου στέλνει τη λίστα ελέγχου μου κατά των απορρίψεων της Apple. Για να φτιάξεις μια εφαρμογή για κινητά που φέρνει έσοδα από την κυκλοφορία της, το iOS Kit αφιερώνει το τρίτο του βήμα, «σύνδεσε τα χρήματα», στη συνδρομή και στο paywall.
Κανείς δεν μπορεί να εγγυηθεί ότι η Apple θα εγκρίνει την εφαρμογή σου. Αυτό που μπορώ να κάνω είναι να σε γλιτώσω από την απόρριψη 3.1.2(c) που πλήρωσα δύο φορές.
Συχνές ερωτήσεις
Τι σημαίνει «Guideline 3.1.2 - Business - Payments - Subscriptions»;
Είναι ο πλήρης τίτλος του κανόνα για τις συνδρομές. Δείχνει τιμή με λάθος ιεραρχία, πληροφορία που λείπει από το paywall, σύνδεσμο που λείπει από τη σελίδα του store ή συνδρομή χωρίς συνεχή αξία. Το γράμμα στην παρένθεση, για παράδειγμα 3.1.2(c), δείχνει το εδάφιο που αφορά.
Μπορώ ακόμα να δείχνω τιμή ανά εβδομάδα ή ανά μήνα;
Ναι. Η Apple επιτρέπει ένα ισοδύναμο ανά εβδομάδα ή μήνα, ή μια έκπτωση, αρκεί να μένουν μικρότερα και λιγότερο εμφανή από το ποσό που πραγματικά χρεώνεται. Στις εφαρμογές μου, το ισοδύναμο είναι γκρι λεζάντα κάτω από την τιμή χρέωσης, ποτέ στη στήλη των πραγματικών τιμών.
Χρειάζεται νέο build μετά από απόρριψη 3.1.2;
Ναι, αν το πρόβλημα είναι στο paywall, αφού ο reviewer δοκιμάζει τον κώδικα του build. Όχι, αν είναι στη σελίδα του store, όπως ένας σύνδεσμος που λείπει από την περιγραφή: διορθώνεις τα metadata και η ίδια υποβολή ξαναφεύγει.
Πού βάζω τον σύνδεσμο προς τους όρους χρήσης (EULA);
Μέσα στην εφαρμογή, στο paywall. Στη σελίδα του store, στην περιγραφή ή στο πεδίο EULA του App Store Connect αν έχεις δική σου σύμβαση. Με την τυπική σύμβαση της Apple, δεν εμφανίζεται κανένας σύνδεσμος στη σελίδα σου: πρόσθεσέ τον μόνος σου στην περιγραφή, σε κάθε γλώσσα.
Το paywall μου είχε ήδη εγκριθεί, γιατί απορρίπτεται τώρα;
Επειδή κάθε έκδοση περνά ξανά review, μερικές φορές από άλλον reviewer. Μια τιμή ανά εβδομάδα σε πρώτο πλάνο είχε εγκριθεί στο TradaZen, και μετά απορρίφθηκε στο Solys και στο TradaZen τον Οκτώβριο του 2026. Μόνο το κείμενο του κανόνα σε προστατεύει.