HTML5 žaidimo paskelbimas App Store be Mac: mūsų debesies kelias
Kaip HTML5 žaidimą nuvedėme nuo Windows kompiuterio iki App Store peržiūros su Capacitor, Codemagic ir TestFlight, ir klaidos, kurios kainavo surinkimus.

Taip, žaidimą App Store galima paskelbti be Mac. Mac vis dar reikalingas, bet jį nuomojatės: HTML5 žaidimas su Capacitor apvyniojamas jūsų kompiuteryje, debesies paslauga, pavyzdžiui Codemagic, surenka ir pasirašo jį savo Mac mašinose, surinkinys eina į App Store Connect ir TestFlight, o sąrašą, privatumo duomenis ir pateikimą baigiate naršyklėje. Ko praleisti negalite, tai iPhone, nes kas nors turi sužaisti surinkinį prieš tai, kai to padaro Apple.
Tai padarėme iš Windows su mūsų veiksmo žaidimu Little Ninja Dash. Pirmas sėkmingas debesies surinkimas truko apie šešias minutes, o programėlė 2026 m. spalio 19 d. nuėjo į App Review, kur mūsų įrašai ją rodo kaip Waiting for Review (laukiama peržiūros). Šis vadovas neskelbia peržiūros rezultato. Faktai apie Apple ir Codemagic paimti iš jų oficialių puslapių, skaityta 2026 m. spalio 30 d. Likusi dalis yra tai, ką sako mūsų užrašai, įskaitant tas dalis, kurios nepavyko.
Ko reikia norint paskelbti App Store be Mac
- Apple Developer Program narystė: 99 USD per narystės metus. Asmenys ir organizacijos gali registruotis. Organizacijoms reikia D-U-N-S numerio ir viešos svetainės.
- Codemagic paskyra. Jos nemokamas individualus planas turi 500 macOS M2 surinkimo minučių per mėnesį ir vieną surinkimą vienu metu; vėliau Mac mini M2 minutės kainuoja 0,095 USD kiekviena. Nemokamos minutės skirtos vienam naudotojui, ne komandoms.
- Privati Git saugykla su jūsų projektu. Codemagic surenka iš saugyklos, kurią prijungiate. Su mūsų šablonais privati saugykla yra būtina: vieša reikštų šaltinio kodo platinimą, o licencija tai draudžia.
- iPhone su TestFlight programa, kad išbandytumėte tikrą surinkinį.
- Žaidimas, kuris veikia neprisijungus iš savo aplanko ir yra apvyniotas su Capacitor.
Apple nuo 2026 m. balandžio 28 d. reikalauja, kad App Store Connect įkeltos programėlės būtų kuriamos su Xcode 26 ar naujesne versija ir iOS 26 SDK. Capacitor iOS puslapis taip pat nurodo Xcode 26.0 ar naujesnę versiją ir palaiko iOS 15 ir naujesnes. Xcode veikia tik macOS, todėl surinkimas vyksta Codemagic mašinose, o ne jūsų kompiuteryje.
Mūsų šablonų leidimai yra naršyklės žaidimai. Kiekvieno leidimo puslapis nurodo, kad natyvūs programėlių surinkimai neįtraukti. Viena licencija galioja vienam galutiniam produktui, ir tą žaidimą galite skelbti kur norite, įskaitant App Store ir Google Play. Šablono pačio perparduoti negalite. Jei planuojate imti mokestį, mokamą programėlę ar pirkimus programėlėje, pirmiausia klauskite mūsų.
Naršykite šablonus ir tai, ką apima kiekvienas leidimas
1 žingsnis: pridėkite iOS projektą Windows sistemoje
Jei jau turite Capacitor projektą Android, įdiekite @capacitor/ios ir paleiskite npx cap add ios. Tai sukuria ios/ aplanką net Windows sistemoje. Jo lokaliai atidaryti Xcode negalite, todėl kiekvienas natyvaus projekto pakeitimas yra failo redagavimas, kurį patikrinate kitame debesies surinkime.
- Piktograma: vienas 1024 × 1024 PNG be skaidrumo.
- Įrenginiai ir orientacija: mūsų žaidimas skirtas tik iPhone ir tik horizontaliai. iPad palaikymas prideda iPad ekrano nuotraukų ir daugiau išdėstymų testavimui.
- Šifravimas: Apple eksporto atitikties pagalba pataria atnaujinti programėlės Info.plist, kad nereikėtų atsakinėti į šifravimo klausimus kiekvieno pateikimo metu. Mūsų žaidimas naudoja tik sistemos HTTPS, todėl nustatėme ITSAppUsesNonExemptEncryption į false.
- Tik įkelti failai: žaidimas yra programėlės viduje ir niekada neįkelia mūsų svetainės. Apple 4.2 gairė reikalauja programėlių, kurios eina toliau nei perpakuota svetainė.
Pradedate nuo šablono? Velvet Pool yra vienas, kurį apvyniojome su Capacitor Google Play, todėl jo žaidimo aplankas jau praėjo šį žingsnį Android sistemai. Nė vienas mūsų šablonas dar nėra praėjęs App Store peržiūros.
Žiūrėkite Velvet Pool, šabloną, kurį jau apvyniojome su Capacitor
2 žingsnis: pasirašymas be Mac ar Keychain
Pasirašymas buvo ta dalis, kuriai anksčiau reikėjo Mac. Su App Store Connect API raktu Codemagic gali tai padaryti debesyje.
- Apple Developer svetainėje sukurkite App ID (paketo identifikatorių) žaidimui, su In-App Purchase, jei jame parduodate ką nors.
- App Store Connect sukurkite programėlės įrašą su tuo paketo ID, SKU ir pagrindine kalba.
- Sugeneruokite App Store Connect API raktą. Codemagic dokumentacija rekomenduoja atskirą raktą Codemagic. Įdėkite jį į Codemagic integracijų nustatymus ir niekada nedėkite raktų failo į saugyklą.
- Leiskite Codemagic sugeneruoti platinimo sertifikatą ir su raktu gauti provisioning profilį. Jis gali atkurti anksčiau sukurtus sertifikatus ir profilius iš Apple Developer portalo.
Kas nepavyko mums
- Pirmi du surinkimai nepavyko, nes paketo ID dar nebuvo nustatytas provisioning profilis. Nustatykite sertifikatą ir profilį prieš pirmą surinkimą.
- Profilis, importuotas Codemagic be nuorodos pavadinimo, neveikė, o mygtukas nutrūko be pranešimo. Visada užpildykite pavadinimą.
- Pirmas API rakto nustatymas nepavyko, nes įvedėme neteisingą Issuer ID. Nukopijuokite jį iš Apple raktų puslapio.
- Surinkimo numeriai turi visada didėti. Užklausa Apple dėl paskutinio numerio nepavyko, kol ankstesnis įkėlimas dar buvo apdorojamas, todėl perjungėme į numerį, paremtą laikrodžiu.
3 žingsnis: surinkimas Codemagic ir testavimas TestFlight
Surinkimo receptas yra codemagic.yaml faile saugykloje. Mūsų įdiegia priklausomybes, paruošia žaidimo failus, sinchronizuoja juos į iOS projektą su npx cap sync ios, pritaiko profilius ir sukuria IPA Mac mini M2 mašinoje. Tada Codemagic paskelbia surinkinį App Store Connect. Mūsų pirmas sėkmingas surinkimas truko apie šešias minutes, o vėlesnis gamybinis — mažiau nei keturias.
Netikėtumas: kai submit_to_testflight nustatyta į false, Codemagic vis tiek įkėlė surinkinį į App Store Connect. Codemagic dokumentacija šią parinktį aprašo kaip reikalingą platinimui beta grupėms.
TestFlight apribojimai
- Vidiniai testuotojai: iki 100 App Store Connect naudotojų jūsų komandoje.
- Išoriniai testuotojai: iki 10 000, po to, kai pirmasis surinkinys išoriniam testavimui patvirtinamas App Review.
- Surinkinys testuotojams prieinamas iki 90 dienų.
Vidinis kvietimas testuotojui lieka laukiantis, kol jis priimamas iš TestFlight el. laiško, o programėlė TestFlight nerodoma iki tol. Patikrinkite šlamšto aplanką.
Ką iPhone rado, ko nerado Windows
- Įrašyti garso failai neįkeliami. Programėlėje fetch grąžino statusą 0 su teisingais baitais, o mūsų kodas tai laikė klaida. Priėmus statusą 0 vietiniams failams, problema išspręsta.
- Mygtukai buvo nukirpti horizontaliai prie iškirpties. Perdarėme rezultatų išdėstymą ir išbandėme kiekvieną kampą.
- Pirkimo ekranai, bendri su Android, vis dar rodė Google Play. iOS jie dabar rodo App Store.
- TestFlight atlikti bandomieji pirkimai negalėjo būti atstatyti, todėl testiniai surinkimai turi mygtuką imituoti, kad pirkimo nebuvo. Parduotuvės surinkimuose jo nėra.
4 žingsnis: App Store Connect sąrašas, privatumas ir amžiaus reitingas
Likusi dalis atliekama naršyklėje. Tokia tvarka mums pavyko.
- App Information: paantraštė, kategorija ir amžiaus reitingo klausimynas. Atsakykite sąžiningai, kas iš tikrųjų rodoma žaidime.
- Pricing and Availability: kaina ir šalys. Mac ir Apple Vision Pro prieinamumas buvo įjungtas pagal numatytuosius nustatymus. Mes jį išjungėme, nes mūsų žaidimas skirtas jutikliniam ekranui.
- App Privacy: Apple reikalauja šių duomenų naujoms programėlėms ir atnaujinimams, įskaitant trečiųjų šalių partnerių praktiką, kurių kodas yra programėlėje, pavyzdžiui skelbimų tinklų ir SDK. Būtinas viešas privatumo politikos URL.
- In-app purchase, jei yra: pavadinimai, aprašymai, peržiūros ekrano nuotrauka ir pastabos peržiūrėtojui.
- Versijos puslapis: aprašymas, raktažodžiai, palaikymo ir rinkodaros URL, autorių teisės, surinkinys, peržiūros pastabos ir išleidimo parinktis. Pasirinkome rankinį išleidimą (Manual release).
- Ekrano nuotraukos, tada kiekviena papildoma kalba su savu tekstu ir kadrais.
- Ekrano nuotraukos: 2.3.3 gairė sako, kad jos turi rodyti programėlę naudojant, o ne tik pavadinimo meną ar pradžios ekraną. Mūsų yra tikri žaidimo kadrai.
- Programėlės pavadinimas: vienas mūsų norėtas pavadinimas jau buvo užimtas App Store. Turėkite paruoštą antrą pavadinimą arba pavadinimą su trumpa aprašoma dalimi.
- Peržiūros pastabos: parašėme, kad žaidimas yra visas programėlės viduje, veikia neprisijungus, nereikalauja prisijungimo, ir nurodėme, kur rasti pirkimo ir atkūrimo mygtuką.
Prieš publikuodami šabloną kaip programėlę, perskaitykite mūsų licencijos sąlygas
5 žingsnis: pateikimas ir ką tikrina Apple
Pateikiant reikia paskelbti App Privacy atsakymus, patvirtinti, kad jie teisingi, ir išsiųsti pateikimo juodraštį. Mūsų išėjo 2026 m. spalio 19 d. su programėlės versija ir jos vienkartiniu pirkimu, o statusas tapo Waiting for Review. Jei peržiūra grįžta su atmetimu, atsakoma per Resolution Center, faktais, o ne aklu pakartotiniu pateikimu.
Žaidimui, sukurtam iš šablono, trys gairės svarbiausios. 4.2 reikalauja daugiau nei perpakuotos svetainės, todėl žaidimą laikykite programėlės viduje. 4.3(a) prašo nekurti kelių tos pačios programėlės paketų ID. 4.3(b) sako, kad Apple nenori programėlių, kurių nebegalima atskirti nuo to, kas jau plačiai prieinama. Perdažymas turi keisti taisykles, turinį ir sąsają, o ne tik piešinius.
Ką apima mūsų šablonai ir ką galime padaryti jums
Kiekvienas šablonas ateina su paruoštu talpinimui žaidimo aplanku, įskaitomu šaltiniu, vadovu ir 6 mėnesių palaikymu, arba 12 su priedu. Palaikymas apima pateiktų failų diegimą ir naudojimą bei atkuriamų defektų taisymą. iOS apvalkalas, natyvios reklamos, pirkimai programėlėje, debesies surinkimo sąranka ir App Store sąrašas yra atskiros paslaugos.
Jei nenorite patys kurti pasirašymo ir Codemagic, atsiųskite mums šabloną, savo Apple paskyros planą ir terminą. Atsakome su apimtimi, kaina ir laiku prieš pradedant bet kokį darbą. Individualaus darbo kainų sąrašo neskelbiame.
Prašykite pasiūlymo, kad jūsų žaidimas patektų į App Store
Dažnai užduodami klausimai
Ar galiu paskelbti iPhone žaidimą neturėdamas Mac?
Taip. Surinkimui vis tiek reikia macOS ir Xcode, bet juos suteikia debesies paslauga, pavyzdžiui Codemagic. Viskas kita, nuo App Store Connect iki TestFlight, veikia naršyklėje ir iPhone.
Kiek kainuoja paskelbimas App Store?
Apple Developer Program kainuoja 99 USD per narystės metus. Codemagic nemokamas individualus planas apima 500 macOS M2 minučių per mėnesį, o papildomos minutės apmokamos už minutę. Pridėkite žaidimo licenciją ir parduotuvės meną.
Ar man reikia iPhone?
Tikram testavimui — taip. Mūsų iPhone rado trūkstamą garsą, nukirptus mygtukus ir neteisingus parduotuvės pavadinimus, kurių nerodė Windows surinkimas ir naršyklės testai.
Ar Apple priims HTML5 žaidimą, apvyniotą programėlėje?
Negalime garantuoti rezultato. 4.2 gairė reikalauja daugiau nei perpakuotos svetainės, todėl visą žaidimą įpakuojame į programėlę, padarome, kad veiktų neprisijungus, ir suteikiame natyvių funkcijų. 4.3 gairė taip pat taikoma perdažymams.
Ar jūsų šablonai apima iOS surinkimą?
Ne. Mūsų leidimai yra naršyklės žaidimai, o prekių puslapiuose nurodyta, kad natyvių programėlių surinkimai neįtraukti. Galite pasekti šiuo keliu patys arba užsakyti iš mūsų pagal pasiūlymą.
