Mac के बिना HTML5 game App Store पर: हमारा cloud build रास्ता
Capacitor, Codemagic और TestFlight के साथ हम HTML5 game को Windows PC से App Store review तक कैसे ले गए, और कौन सी गलतियों ने builds बर्बाद किए।

हाँ, Mac के बिना भी game App Store पर publish किया जा सकता है। Mac फिर भी चाहिए, पर आप उसे किराए पर लेते हैं: HTML5 game को आपके PC पर Capacitor से लपेटा जाता है, Codemagic जैसी cloud सेवा उसे अपनी Mac मशीनों पर compile करके sign करती है, build App Store Connect और TestFlight पर जाता है, और listing, privacy के ब्योरे और submission browser में पूरे होते हैं। जिसे छोड़ा नहीं जा सकता, वह है iPhone, क्योंकि Apple से पहले किसी को build खेलकर देखना होता है।
हमने यह Windows से अपने action game, Little Ninja Dash, के साथ किया। पहला सफल cloud build लगभग छह मिनट में बना, और app 19 अक्टूबर 2026 को App Review में गया, जहाँ हमारे रिकॉर्ड उसे Waiting for Review दिखाते हैं। यह गाइड review का नतीजा नहीं बताती। Apple और Codemagic के तथ्य उनके आधिकारिक पेजों से हैं, जो 30 अक्टूबर 2026 को पढ़े गए थे। बाकी वह है जो हमारे नोट्स बताते हैं कि हुआ, जिनमें गलत हुए हिस्से भी शामिल हैं।
Mac के बिना App Store पर publish करने के लिए क्या चाहिए
- Apple Developer Program की सदस्यता: प्रति सदस्यता वर्ष 99 US डॉलर। व्यक्ति और संस्थाएँ दोनों दाखिला ले सकते हैं। संस्थाओं को D-U-N-S Number और एक सार्वजनिक website चाहिए।
- Codemagic का खाता। उसकी मुफ़्त individual योजना में हर महीने 500 macOS M2 build minutes और एक समय में एक build मिलता है; उसके बाद Mac mini M2 minutes US$0.095 प्रति minute पर मिलते हैं। मुफ़्त minutes एकल उपयोगकर्ताओं के लिए हैं, टीमों के लिए नहीं।
- आपके project वाली एक private Git repository। Codemagic उसी repository से build करता है जिसे आप जोड़ते हैं। हमारे templates के साथ private repository ज़रूरी है: public repository source code दोबारा बाँटेगी, जो licence मना करती है।
- असली build जाँचने के लिए TestFlight ऐप वाला एक iPhone।
- एक game जो अपने फ़ोल्डर से offline चलता है, और Capacitor से लपेटा गया हो।
Apple ने 28 अप्रैल 2026 से ज़रूरी कर दिया है कि App Store Connect पर upload होने वाले apps Xcode 26 या नए और iOS 26 SDK से build हों। Capacitor का iOS पेज भी Xcode 26.0 या नया लिखता है और iOS 15 व उससे ऊपर का समर्थन करता है। Xcode सिर्फ़ macOS पर चलता है, इसलिए build आपके PC पर नहीं, Codemagic की मशीनों पर होता है।
हमारे template editions browser games हैं। हर edition के पेज पर लिखा है कि native app builds शामिल नहीं हैं। एक licence एक end product को कवर करता है, और वह game आप जहाँ चाहें publish कर सकते हैं, App Store और Google Play समेत। Template खुद दोबारा बेचना मना है। अगर आप खिलाड़ियों से पैसे लेने की सोच रहे हैं, paid app या in-app purchases से, तो पहले हमसे पूछें।
Templates और हर edition में क्या शामिल है, देखें
चरण 1: Windows पर iOS project जोड़ें
अगर आपके पास Android के लिए Capacitor project पहले से है, तो @capacitor/ios इंस्टॉल करें और npx cap add ios चलाएँ। इससे ios/ फ़ोल्डर बनता है, Windows पर भी। इसे स्थानीय रूप से Xcode में नहीं खोला जा सकता, इसलिए native project में हर बदलाव एक फ़ाइल संपादन है, जिसे आप अगले cloud build में जाँचते हैं।
- Icon: एक 1024 x 1024 का PNG, बिना transparency के।
- Devices और orientation: हमारा game सिर्फ़ iPhone और सिर्फ़ landscape के लिए है। iPad का समर्थन जोड़ने पर iPad screenshots और ज़्यादा layouts टेस्ट करने पड़ते।
- Encryption: Apple की export compliance मदद कहती है कि app के Info.plist को अपडेट करें, ताकि हर submission पर encryption के सवालों के जवाब न देने पड़ें। हमारा game सिर्फ़ सिस्टम का HTTPS इस्तेमाल करता है, इसलिए हमने ITSAppUsesNonExemptEncryption को false रखा।
- सिर्फ़ bundled फ़ाइलें: game app के अंदर है और कभी हमारी website लोड नहीं करता। Apple का guideline 4.2 उन apps की माँग करता है जो सिर्फ़ दोबारा पैक की गई website से आगे जाएँ।
Template से शुरू कर रहे हैं? Velvet Pool वह है जिसे हमने Google Play के लिए Capacitor से लपेटा था, इसलिए उसका game फ़ोल्डर Android पर यह चरण पहले ही पार कर चुका है। हमारा कोई भी template अभी App Store review से नहीं गुज़रा है।
Velvet Pool देखें, वह template जिसे हम पहले ही Capacitor से लपेट चुके हैं
चरण 2: Mac या Keychain के बिना signing
Signing वह हिस्सा है जिसके लिए पहले Mac चाहिए था। App Store Connect API key के साथ Codemagic यह cloud पर कर सकता है।
- Apple Developer साइट पर game के लिए एक App ID (bundle identifier) बनाएँ, और अगर उसके अंदर कुछ बेचना है तो In-App Purchase के साथ।
- App Store Connect में उसी bundle ID, एक SKU और मुख्य भाषा के साथ app record बनाएँ।
- App Store Connect API key बनाएँ। Codemagic का documentation Codemagic के लिए समर्पित key की सलाह देता है। उसे Codemagic की integration settings में जोड़ें और key फ़ाइल कभी अपनी repository में न रखें।
- Codemagic को distribution certificate बनाने दें और key की मदद से provisioning profile लेने दें। वह पहले बने certificates और Apple Developer portal के profiles भी ले सकता है।
हमारे साथ क्या गलत हुआ
- हमारे पहले दो builds असफल रहे, क्योंकि bundle ID के लिए provisioning profile अभी सेट नहीं था। पहले build से पहले certificate और profile सेट करें।
- Codemagic में बिना reference name के import हुआ profile काम नहीं किया, और बटन चुपचाप विफल हो गया। नाम हमेशा भरें।
- API key का पहला setup इसलिए विफल हुआ क्योंकि हमने गलत Issuer ID टाइप की। उसे Apple के keys पेज से copy-paste करें।
- Build numbers हमेशा बढ़ते रहने चाहिए। पिछला upload अभी process हो रहा था, तब Apple से आख़िरी नंबर माँगना विफल हो गया, इसलिए हमने घड़ी से निकला नंबर इस्तेमाल किया।
चरण 3: Codemagic पर build और TestFlight पर टेस्ट
Build का नुस्ख़ा repository की codemagic.yaml फ़ाइल में रहता है। हमारी फ़ाइल dependencies इंस्टॉल करती है, game फ़ाइलें तैयार करती है, npx cap sync ios से उन्हें iOS project में सिंक करती है, profiles लगाती है और Mac mini M2 मशीन पर IPA बनाती है। फिर Codemagic build को App Store Connect पर publish करता है। हमारा पहला सफल build लगभग छह मिनट में बना, और बाद का production build चार मिनट से कम में।
एक आश्चर्य: submit_to_testflight को false रखने पर भी Codemagic ने build को App Store Connect पर upload कर दिया। Codemagic का documentation इस विकल्प को beta groups में बाँटने के लिए ज़रूरी बताता है।
TestFlight की सीमाएँ
- Internal testers: आपकी team के अंदर तक 100 App Store Connect users।
- External testers: 10,000 तक, और तभी जब आपका पहला external testing build App Review से मंज़ूर हो जाए।
- एक build testers के लिए 90 दिन तक उपलब्ध रहता है।
Internal tester का निमंत्रण तब तक लंबित रहता है जब तक TestFlight email से उसे स्वीकार न किया जाए, और तब तक app TestFlight में नहीं दिखता। Spam फ़ोल्डर देखें।
iPhone ने वह पकड़ा जो Windows नहीं पकड़ सका
- रिकॉर्ड की गई audio फ़ाइलें लोड नहीं हुईं। App के अंदर fetch ने सही bytes के साथ status 0 लौटाया, और हमारे code ने उसे error माना। Local फ़ाइलों के लिए status 0 स्वीकार करने से यह ठीक हो गया।
- Landscape में notch के पास बटन कटे हुए थे। हमने results layout दोबारा बनाया और हर कोना टेस्ट किया।
- Android के साथ साझा purchase screens पर अभी भी Google Play लिखा था। iOS पर अब वहाँ App Store लिखा है।
- TestFlight में किए test purchases रीसेट नहीं हो सकते थे, इसलिए test builds में एक बटन था जो खरीद न होने का नाटक करता था। Store builds में वह नहीं है।
चरण 4: App Store Connect listing, privacy और age rating
बाकी काम browser में होता है। यह वह क्रम है जो हमारे लिए चला।
- App Information: subtitle, category और age rating का प्रश्नावली। जो game असल में दिखाता है, उसके लिए ईमानदारी से जवाब दें।
- Pricing and Availability: कीमत और देश। Mac और Apple Vision Pro की उपलब्धता डिफ़ॉल्ट रूप से चालू थी। हमने उन्हें बंद किया, क्योंकि हमारा game touch के लिए बना है।
- App Privacy: Apple नए apps और अपडेट्स के लिए ये ब्योरे माँगता है, जिसमें app में मौजूद third-party partners की practices भी शामिल हैं, जैसे ad networks और SDKs। एक सार्वजनिक privacy policy URL ज़रूरी है।
- In-app purchase, अगर हो: नाम, विवरण, review screenshot और reviewer के लिए नोट्स।
- Version page: विवरण, keywords, support और marketing URLs, copyright, build, review notes और release का विकल्प। हमने manual release चुना।
- Screenshots, फिर हर अतिरिक्त भाषा अपने text और captures के साथ।
- Screenshots: guideline 2.3.3 कहता है कि वे app को इस्तेमाल होते दिखाएँ, सिर्फ़ title art या splash screen नहीं। हमारे screenshots game के असली captures हैं।
- App का नाम: जो नाम हम चाहते थे, वह App Store पर पहले से लिया हुआ था। दूसरा नाम, या छोटे वर्णनात्मक हिस्से वाला नाम, तैयार रखें।
- Review notes: हमने लिखा कि game app के अंदर पूरा है, offline चलता है, login नहीं माँगता, और खरीद व restore बटन कहाँ मिलते हैं।
Template को app के रूप में प्रकाशित करने से पहले हमारी licence शर्तें पढ़ें
चरण 5: submit करें, और Apple क्या जाँचता है
Submit करने पर आपसे App Privacy के जवाब publish करने और उन्हें सच मानने की पुष्टि माँगी जाती है, फिर draft submission भेजा जाता है। हमारा 19 अक्टूबर 2026 को app version और उसकी एक बार की खरीद के साथ गया, और status Waiting for Review हो गया। अगर review में rejection आए, तो जवाब Resolution Center से जाता है, तथ्यों के साथ, बिना अंधाधुंध दोबारा submit किए।
Template से बने game के लिए तीन guidelines सबसे ज़्यादा मायने रखते हैं। 4.2 दोबारा पैक की गई website से ज़्यादा माँगता है, इसलिए game app के अंदर रखें। 4.3(a) एक ही app के कई bundle IDs बनाने से मना करता है। 4.3(b) कहता है कि Apple ऐसे apps नहीं चाहता जो पहले से व्यापक रूप से उपलब्ध चीज़ों से अलग न पहचाने जा सकें। Reskin को नियम, content और interface बदलने होंगे, सिर्फ़ art नहीं।
हमारे templates में क्या है, और हम आपके लिए क्या कर सकते हैं
हर template के साथ तैयार-होस्ट करने वाला game फ़ोल्डर, पढ़ने योग्य source, एक manual और 6 महीने का support मिलता है, या extension के साथ 12 महीने। Support में दी गई files इंस्टॉल और इस्तेमाल करना, और दोहराए जा सकने वाले defects ठीक करना शामिल है। iOS wrapper, native ads, in-app purchases, cloud build setup और App Store listing अलग सेवाएँ हैं।
अगर आप signing और Codemagic खुद सेट नहीं करना चाहते, तो template, अपना Apple account plan और deadline भेजें। काम शुरू होने से पहले हम scope, कीमत और समय बताते हैं। Custom काम की कोई कीमत-सूची हम प्रकाशित नहीं करते।
अपना game App Store तक ले जाने का quote माँगें
अक्सर पूछे जाने वाले प्रश्न
क्या मैं Mac के मालिक हुए बिना iPhone game publish कर सकता हूँ?
हाँ। Build के लिए फिर भी macOS और Xcode चाहिए, पर उन्हें Codemagic जैसी cloud सेवा देती है। App Store Connect से TestFlight तक बाकी सब browser में और iPhone पर चलता है।
App Store पर publish करने का खर्च कितना है?
Apple Developer Program का खर्च 99 US डॉलर प्रति सदस्यता वर्ष है। Codemagic की मुफ़्त individual योजना में हर महीने 500 macOS M2 minutes मिलते हैं, और अतिरिक्त minutes प्रति minute के हिसाब से लगते हैं। इसमें game की licence और store art का खर्च जोड़ें।
क्या मुझे iPhone चाहिए?
असली टेस्ट के लिए, हाँ। हमारे iPhone ने गायब audio, कटे बटन और गलत store नाम पकड़े, जो Windows build और browser टेस्ट में नहीं दिखे थे।
क्या Apple HTML5 game को app में लपेटकर स्वीकार करेगा?
नतीजे का वादा हम नहीं कर सकते। Guideline 4.2 दोबारा पैक की गई website से ज़्यादा माँगता है, इसलिए हम पूरा game app के अंदर रखते हैं, उसे offline चलाते हैं और native सुविधाएँ देते हैं। Guideline 4.3 reskins पर भी लागू होता है।
क्या आपके templates में iOS build शामिल है?
नहीं। हमारे editions browser games हैं, और item पेजों पर लिखा है कि native app builds शामिल नहीं हैं। यह रास्ता आप खुद अपना सकते हैं, या हमसे quote पर ऑर्डर कर सकते हैं।
