Δημοσίευση παιχνιδιού HTML5 στο App Store χωρίς Mac: cloud build
Πώς πήραμε ένα παιχνίδι HTML5 από ένα PC με Windows μέχρι την αξιολόγηση του App Store με Capacitor, Codemagic και TestFlight, και τα λάθη που μας κόστισαν builds.

Ναι, μπορείτε να δημοσιεύσετε παιχνίδι στο App Store χωρίς Mac. Το Mac χρειάζεται ακόμα, αλλά το νοικιάζετε: ένα παιχνίδι HTML5 τυλίγεται με Capacitor στον υπολογιστή σας, μια υπηρεσία cloud όπως το Codemagic το μεταγλωττίζει και το υπογράφει στα δικά της Mac, το build πηγαίνει στο App Store Connect και στο TestFlight, και τελειώνετε την καταχώριση, τα στοιχεία απορρήτου και την υποβολή στον browser. Αυτό που δεν παραλείπετε είναι ένα iPhone, γιατί κάποιος πρέπει να παίξει το build πριν το δει η Apple.
Το κάναμε από Windows με το δικό μας παιχνίδι δράσης, το Little Ninja Dash. Το πρώτο επιτυχές build στο cloud πήρε περίπου έξι λεπτά, και η εφαρμογή στάλθηκε για App Review (αξιολόγηση εφαρμογών) στις 19 Οκτωβρίου 2026, όπου τα αρχεία μας τη δείχνουν ως Waiting for Review (σε αναμονή αξιολόγησης). Αυτός ο οδηγός δεν αναφέρει αποτέλεσμα αξιολόγησης. Τα στοιχεία για την Apple και το Codemagic προέρχονται από τις επίσημες σελίδες τους, διαβασμένες στις 30 Οκτωβρίου 2026. Τα υπόλοιπα είναι όσα λένε οι σημειώσεις μας που έγιναν, μαζί με όσα πήγαν στραβά.
Τι χρειάζεστε για να δημοσιεύσετε στο App Store χωρίς Mac
- Μέλος Apple Developer Program: 99 δολάρια ΗΠΑ ανά έτος μέλους. Μπορούν να εγγραφούν άτομα και οργανισμοί. Οι οργανισμοί χρειάζονται D-U-N-S Number και δημόσια ιστοσελίδα.
- Λογαριασμό Codemagic. Το δωρεάν ατομικό πρόγραμμά του έχει 500 λεπτά macOS M2 τον μήνα και ένα build τη φορά· μετά, τα λεπτά Mac mini M2 κοστίζουν 0,095 US$ το καθένα. Τα δωρεάν λεπτά είναι για μεμονωμένους χρήστες, όχι για ομάδες.
- Ένα ιδιωτικό αποθετήριο Git με το έργο σας. Το Codemagic χτίζει από το αποθετήριο που συνδέετε. Με τα πρότυπά μας, το ιδιωτικό αποθετήριο είναι υποχρεωτικό: ένα δημόσιο θα αναδιένειμε τον πηγαίο κώδικα, κάτι που απαγορεύει η άδεια.
- Ένα iPhone με την εφαρμογή TestFlight, για δοκιμή του πραγματικού build.
- Ένα παιχνίδι που λειτουργεί εκτός σύνδεσης από τον δικό του φάκελο, τυλιγμένο με Capacitor.
Από τις 28 Απριλίου 2026 η Apple απαιτεί οι εφαρμογές που ανεβαίνουν στο App Store Connect να χτίζονται με Xcode 26 ή νεότερο και SDK iOS 26. Η σελίδα του Capacitor για iOS αναφέρει επίσης Xcode 26.0 ή νεότερο και υποστηρίζει iOS 15 και άνω. Το Xcode τρέχει μόνο σε macOS, γι' αυτό το build γίνεται στα μηχανήματα του Codemagic και όχι στον υπολογιστή σας.
Οι εκδόσεις των προτύπων μας είναι παιχνίδια για browser. Κάθε σελίδα έκδοσης αναφέρει ότι τα native builds εφαρμογών δεν περιλαμβάνονται. Μία άδεια καλύπτει ένα τελικό προϊόν, και μπορείτε να δημοσιεύσετε εκείνο το παιχνίδι όπου θέλετε, συμπεριλαμβανομένων του App Store και του Google Play. Δεν μπορείτε να μεταπωλήσετε το ίδιο το πρότυπο. Αν σκοπεύετε να χρεώνετε τους παίκτες, με πληρωμένη εφαρμογή ή αγορές εντός εφαρμογής, ρωτήστε μας πρώτα.
Δείτε τα πρότυπα και τι περιλαμβάνει κάθε έκδοση
Βήμα 1: προσθέστε το έργο iOS στα Windows
Αν έχετε ήδη έργο Capacitor για Android, εγκαταστήστε το @capacitor/ios και τρέξτε npx cap add ios. Αυτό δημιουργεί τον φάκελο ios/, ακόμα και στα Windows. Δεν μπορείτε να τον ανοίξετε τοπικά στο Xcode, άρα κάθε αλλαγή στο εγγενές έργο είναι επεξεργασία αρχείου που ελέγχετε στο επόμενο cloud build.
- Εικονίδιο: ένα PNG 1024 επί 1024 χωρίς διαφάνεια.
- Συσκευές και προσανατολισμός: το παιχνίδι μας είναι μόνο για iPhone και μόνο οριζόντιο. Η υποστήριξη iPad προσθέτει στιγμιότυπα iPad και περισσότερες διατάξεις για δοκιμή.
- Κρυπτογράφηση: η βοήθεια της Apple για τη συμμόρφωση εξαγωγής λέει να ενημερώσετε το Info.plist της εφαρμογής, ώστε να μην απαντάτε στις ερωτήσεις κρυπτογράφησης σε κάθε υποβολή. Το παιχνίδι μας χρησιμοποιεί μόνο το HTTPS του συστήματος, γι' αυτό ορίσαμε ITSAppUsesNonExemptEncryption σε false.
- Μόνο ενσωματωμένα αρχεία: το παιχνίδι βρίσκεται μέσα στην εφαρμογή και δεν φορτώνει ποτέ τον ιστότοπό μας. Ο κανόνας 4.2 της Apple ζητά εφαρμογές που πηγαίνουν πέρα από έναν ξαναπακεταρισμένο ιστότοπο.
Ξεκινάτε από πρότυπο; Το Velvet Pool το έχουμε τυλίξει με Capacitor για Google Play, άρα ο φάκελος του παιχνιδιού έχει ήδη περάσει αυτό το βήμα στο Android. Κανένα πρότυπό μας δεν έχει περάσει ακόμα από την αξιολόγηση του App Store.
Δείτε το Velvet Pool, πρότυπο που έχουμε ήδη τυλίξει με Capacitor
Βήμα 2: υπογραφή χωρίς Mac ή Keychain
Η υπογραφή ήταν το κομμάτι που παλιά ήθελε Mac. Με ένα κλειδί API του App Store Connect, το Codemagic μπορεί να την κάνει στο cloud.
- Στον ιστότοπο του Apple Developer, δημιουργήστε ένα App ID (bundle identifier) για το παιχνίδι, με In-App Purchase αν πουλάτε κάτι μέσα σε αυτό.
- Στο App Store Connect, δημιουργήστε την εγγραφή της εφαρμογής με αυτό το bundle ID, ένα SKU και την κύρια γλώσσα.
- Δημιουργήστε κλειδί API του App Store Connect. Η τεκμηρίωση του Codemagic συνιστά ένα αποκλειστικό κλειδί για το Codemagic. Προσθέστε το στις ρυθμίσεις ενσωμάτωσης του Codemagic και μην βάλετε ποτέ το αρχείο κλειδιού στο αποθετήριό σας.
- Αφήστε το Codemagic να δημιουργήσει το πιστοποιητικό διανομής και να φέρει το provisioning profile με το κλειδί. Μπορεί να πάρει πιστοποιητικά που δημιούργησε παλαιότερα, και profiles από την πύλη Apple Developer.
Τι πήγε στραβά για εμάς
- Τα δύο πρώτα builds μας απέτυχαν επειδή δεν είχε ρυθμιστεί ακόμα provisioning profile για το bundle ID. Ρυθμίστε το πιστοποιητικό και το profile πριν από το πρώτο build.
- Ένα profile που εισήχθη στο Codemagic χωρίς όνομα αναφοράς δεν λειτούργησε, και το κουμπί απέτυχε χωρίς μήνυμα. Συμπληρώνετε πάντα το όνομα.
- Η πρώτη ρύθμιση κλειδιού API απέτυχε επειδή πληκτρολογήσαμε λάθος Issuer ID. Αντιγράψτε και επικολλήστε το από τη σελίδα κλειδιών της Apple.
- Οι αριθμοί build πρέπει να αυξάνονται πάντα. Η ερώτηση στην Apple για τον τελευταίο αριθμό απέτυχε ενώ ένα προηγούμενο upload ακόμα επεξεργαζόταν, οπότε περάσαμε σε αριθμό που προκύπτει από το ρολόι.
Βήμα 3: build στο Codemagic και δοκιμή στο TestFlight
Η συνταγή build βρίσκεται σε ένα αρχείο codemagic.yaml στο αποθετήριο. Η δική μας εγκαθιστά τις εξαρτήσεις, προετοιμάζει τα αρχεία του παιχνιδιού, τα συγχρονίζει στο έργο iOS με npx cap sync ios, εφαρμόζει τα profiles και χτίζει το IPA σε μηχάνημα Mac mini M2. Μετά, το Codemagic δημοσιεύει το build στο App Store Connect. Το πρώτο επιτυχές build μας πήρε περίπου έξι λεπτά, και το μεταγενέστερο build παραγωγής κάτω από τέσσερα.
Μια έκπληξη: με το submit_to_testflight ορισμένο σε false, το Codemagic ανέβασε ακόμα το build στο App Store Connect. Η τεκμηρίωση του Codemagic περιγράφει αυτή την επιλογή ως απαραίτητη για διανομή σε ομάδες beta.
Όρια TestFlight
- Εσωτερικοί δοκιμαστές: έως 100 χρήστες App Store Connect της ομάδας σας.
- Εξωτερικοί δοκιμαστές: έως 10.000, αφού εγκριθεί από το App Review το πρώτο σας build για εξωτερική δοκιμή.
- Ένα build παραμένει διαθέσιμο στους δοκιμαστές έως 90 ημέρες.
Η πρόσκληση εσωτερικού δοκιμαστή μένει σε εκκρεμότητα έως ότου γίνει αποδεκτή από το email του TestFlight, και η εφαρμογή δεν εμφανίζεται στο TestFlight πριν από αυτό. Ελέγξτε τον φάκελο ανεπιθύμητων.
Τι βρήκε το iPhone που δεν μπορούσαν τα Windows
- Τα ηχογραφημένα αρχεία ήχου δεν φορτώνονταν. Μέσα στην εφαρμογή, το fetch επέστρεφε κατάσταση 0 με σωστά bytes, και ο κώδικάς μας το θεωρούσε σφάλμα. Η αποδοχή κατάστασης 0 για τοπικά αρχεία το διόρθωσε.
- Τα κουμπιά στο οριζόντιο κόβονταν κοντά στο notch. Ξαναδουλέψαμε τη διάταξη αποτελεσμάτων και δοκιμάσαμε κάθε γωνία.
- Οι οθόνες αγοράς που ήταν κοινές με το Android έγραφαν ακόμα Google Play. Τώρα στο iOS γράφουν App Store.
- Οι δοκιμαστικές αγορές στο TestFlight δεν μπορούσαν να επαναφερθούν, οπότε τα δοκιμαστικά builds πήραν κουμπί προσομοίωσης μη αγοράς. Τα κανονικά builds δεν το έχουν.
Βήμα 4: καταχώριση στο App Store Connect, απόρρητο και ηλικιακή βαθμολόγηση
Το υπόλοιπο γίνεται στον browser. Αυτή είναι η σειρά που μας δούλεψε.
- App Information: υπότιτλος, κατηγορία και το ερωτηματολόγιο ηλικιακής βαθμολόγησης. Απαντήστε ειλικρινά για αυτό που δείχνει πραγματικά το παιχνίδι.
- Pricing and Availability: τιμή και χώρες. Η διαθεσιμότητα σε Mac και Apple Vision Pro ήταν ενεργή από προεπιλογή. Την απενεργοποιήσαμε, γιατί το παιχνίδι μας είναι φτιαγμένο για αφή.
- App Privacy: η Apple απαιτεί αυτά τα στοιχεία για νέες εφαρμογές και ενημερώσεις, συμπεριλαμβανομένων των πρακτικών συνεργατών τρίτων των οποίων ο κώδικας υπάρχει στην εφαρμογή, όπως δίκτυα διαφημίσεων και SDK. Απαιτείται δημόσια διεύθυνση πολιτικής απορρήτου.
- Αγορές εντός εφαρμογής, αν υπάρχουν: ονόματα, περιγραφές, στιγμιότυπο για αξιολόγηση και σημειώσεις για τον αξιολογητή.
- Σελίδα έκδοσης: περιγραφή, λέξεις-κλειδιά, διευθύνσεις υποστήριξης και μάρκετινγκ, copyright, το build, σημειώσεις αξιολόγησης και την επιλογή κυκλοφορίας. Επιλέξαμε χειροκίνητη κυκλοφορία.
- Στιγμιότυπα οθόνης, και μετά κάθε επιπλέον γλώσσα με το δικό της κείμενο και τις λήψεις.
- Στιγμιότυπα: ο κανόνας 2.3.3 της Apple λέει ότι πρέπει να δείχνουν την εφαρμογή σε χρήση, όχι μόνο τίτλο ή splash screen. Τα δικά μας είναι πραγματικές λήψεις του παιχνιδιού.
- Όνομα εφαρμογής: ένα όνομα που θέλαμε ήταν ήδη κατειλημμένο στο App Store. Έχετε έτοιμο δεύτερο όνομα ή όνομα με σύντομο περιγραφικό μέρος.
- Σημειώσεις αξιολόγησης: γράψαμε ότι το παιχνίδι είναι πλήρες μέσα στην εφαρμογή, λειτουργεί εκτός σύνδεσης, δεν χρειάζεται σύνδεση και πού να βρει ο αξιολογητής την αγορά και το κουμπί επαναφοράς.
Διαβάστε τους όρους άδειας πριν δημοσιεύσετε ένα πρότυπο ως εφαρμογή
Βήμα 5: υποβολή και τι ελέγχει η Apple
Η υποβολή ζητά να δημοσιεύσετε τις απαντήσεις για το App Privacy και να επιβεβαιώσετε ότι είναι αληθινές, και μετά να στείλετε την πρόχειρη υποβολή. Η δική μας έφυγε στις 19 Οκτωβρίου 2026 με την έκδοση της εφαρμογής και την αγορά μίας φοράς, και η κατάσταση έγινε Waiting for Review. Αν μια αξιολόγηση επιστρέψει με απόρριψη, η απάντηση πηγαίνει μέσω του Resolution Center, με γεγονότα και όχι με τυφλή επανυποβολή.
Για παιχνίδι φτιαγμένο από πρότυπο, τρεις κανόνες μετράνε περισσότερο. Ο 4.2 ζητά περισσότερα από έναν ξαναπακεταρισμένο ιστότοπο, άρα κρατήστε το παιχνίδι μέσα στην εφαρμογή. Ο 4.3(a) ζητά να μην δημιουργείτε πολλά bundle IDs για την ίδια εφαρμογή. Ο 4.3(b) λέει ότι η Apple δεν θέλει εφαρμογές που δεν ξεχωρίζουν από όσες ήδη κυκλοφορούν ευρέως. Ένα reskin πρέπει να αλλάζει κανόνες, περιεχόμενο και διεπαφή, όχι μόνο τα γραφικά.
Τι περιλαμβάνουν τα πρότυπά μας, και το μέρος που μπορούμε να κάνουμε για εσάς
Κάθε πρότυπο έρχεται με τον έτοιμο φάκελο παιχνιδιού για φιλοξενία, αναγνώσιμο κώδικα, εγχειρίδιο και 6 μήνες υποστήριξης, ή 12 με την επέκταση. Η υποστήριξη καλύπτει εγκατάσταση και χρήση των παρεχόμενων αρχείων και διόρθωση αναπαραγώγιμων σφαλμάτων. Ένα περιτύλιγμα iOS, διαφημίσεις εγγενείς, αγορές εντός εφαρμογής, η ρύθμιση cloud build και η καταχώριση στο App Store είναι χωριστές υπηρεσίες.
Αν προτιμάτε να μην ρυθμίσετε μόνοι σας την υπογραφή και το Codemagic, στείλτε μας το πρότυπο, το πλάνο του λογαριασμού σας στην Apple και την προθεσμία. Απαντάμε με εύρος, τιμή και χρονοδιάγραμμα πριν ξεκινήσει οποιαδήποτε δουλειά. Δεν δημοσιεύουμε τιμοκατάλογο για προσαρμοσμένη εργασία.
Ζητήστε προσφορά για να φέρετε το παιχνίδι σας στο App Store
Συχνές ερωτήσεις
Μπορώ να δημοσιεύσω παιχνίδι για iPhone χωρίς να έχω Mac;
Ναι. Χρειάζεστε ακόμα macOS και Xcode για το build, αλλά μια υπηρεσία cloud όπως το Codemagic τα παρέχει. Όλα τα υπόλοιπα, από το App Store Connect μέχρι το TestFlight, λειτουργούν σε browser και σε iPhone.
Πόσο κοστίζει η δημοσίευση στο App Store;
Το Apple Developer Program κοστίζει 99 δολάρια ΗΠΑ ανά έτος μέλους. Το δωρεάν ατομικό πρόγραμμα του Codemagic περιλαμβάνει 500 λεπτά macOS M2 τον μήνα, και τα επιπλέον λεπτά χρεώνονται ανά λεπτό. Προσθέστε την άδεια του παιχνιδιού και τα γραφικά καταστήματος.
Χρειάζομαι iPhone;
Για πραγματική δοκιμή, ναι. Το iPhone μας βρήκε ήχο που έλειπε, κουμπιά που κόβονταν και λάθος ονόματα καταστήματος που το build των Windows και οι δοκιμές στον browser δεν έδειχναν.
Θα δεχτεί η Apple ένα παιχνίδι HTML5 τυλιγμένο σε εφαρμογή;
Δεν μπορούμε να υποσχεθούμε αποτέλεσμα. Ο κανόνας 4.2 ζητά περισσότερα από έναν ξαναπακεταρισμένο ιστότοπο, γι' αυτό βάζουμε το πλήρες παιχνίδι μέσα στην εφαρμογή, το κάνουμε να λειτουργεί εκτός σύνδεσης και του δίνουμε εγγενείς λειτουργίες. Ο κανόνας 4.3 ισχύει και για τα reskins.
Τα πρότυπά σας περιλαμβάνουν build για iOS;
Όχι. Οι εκδόσεις μας είναι παιχνίδια browser και οι σελίδες προϊόντων λένε ότι τα native builds δεν περιλαμβάνονται. Μπορείτε να ακολουθήσετε αυτή τη διαδρομή μόνοι σας ή να την παραγγείλετε από εμάς με προσφορά.
