Ceļvedis

Spēles publicēšana App Store bez Mac: mūsu mākoņa būves ceļš

Kā mēs HTML5 spēli no Windows datora nogādājām līdz App Store pārskatīšanai ar Capacitor, Codemagic un TestFlight, un kļūdas, kas mums maksāja būves.

Galvenā grafika no Sunset Rally sagataves Polar Games tirgū.

Jā, spēli var publicēt App Store arī bez Mac. Mac joprojām vajadzīgs, bet to noma: HTML5 spēle tiek ietīta ar Capacitor jūsu datorā, mākoņa pakalpojums, piemēram, Codemagic, to kompilē un paraksta savās Mac mašīnās, būve nonāk App Store Connect un TestFlight, bet saraksta, privātuma datu un iesniegšanas pabeigšanu veicat pārlūkā. Ko izlaist nevar, ir iPhone, jo kādam būvei jānospēlē pirms Apple.

Mēs to darījām no Windows ar savu darbības spēli Little Ninja Dash. Pirmā veiksmīgā mākoņa būve aizņēma apmēram sešas minūtes, un lietotne nonāca App Review 2026. gada 19. oktobrī; mūsu ieraksti to rāda kā Waiting for Review (gaida pārskatīšanu). Šis ceļvedis neziņo par pārskatīšanas rezultātu. Fakti par Apple un Codemagic nāk no to oficiālajām lapām, lasītām 2026. gada 30. oktobrī. Pārējais ir tas, ko mūsu piezīmes saka, ka notika, ieskaitot daļas, kas nogāja greizi.

Ko vajag, lai publicētu App Store bez Mac

  • Apple Developer Program dalība: 99 USD gadā. Dalību var pieteikt privātpersonas un organizācijas. Organizācijām vajag D-U-N-S numuru un publisku tīmekļa vietni.
  • Codemagic konts. Tā bezmaksas individuālajā plānā ir 500 macOS M2 būves minūtes mēnesī un viena būve vienlaikus; pēc tam Mac mini M2 minūtes maksā 0,095 USD katra. Bezmaksas minūtes paredzētas vienam lietotājam, nevis komandām.
  • Privāta Git krātuve ar jūsu projektu. Codemagic būvē no krātuves, kuru pievienojat. Ar mūsu sagatavēm vajadzīga privāta krātuve: publiska nozīmētu pirmkoda pārdali, ko licence aizliedz.
  • iPhone ar TestFlight lietotni, lai pārbaudītu īsto būvi.
  • Spēle, kas darbojas bezsaistē no savas mapes un ir ietīta ar Capacitor.

Apple no 2026. gada 28. aprīļa prasa, lai lietotnes, kas augšupielādētas App Store Connect, tiktu būvētas ar Xcode 26 vai jaunāku un iOS 26 SDK. Capacitor iOS lapā norādīts arī Xcode 26.0 vai jaunāks un atbalsts no iOS 15. Xcode darbojas tikai macOS, tāpēc būve notiek Codemagic mašīnās, nevis jūsu datorā.

Mūsu sagatavju izdevumi ir pārlūka spēles. Katras izdevuma lapā norādīts, ka natīvo lietotņu būves nav iekļautas. Viena licence sedz vienu gala produktu, un šo spēli varat publicēt jebkur, arī App Store un Google Play. Pašu sagatavi pārdot nedrīkstat. Ja plānojat iekasēt naudu no spēlētājiem, ar maksas lietotni vai lietotnes iekšpirkumiem, vispirms jautājiet mums.

Pārlūkojiet sagataves un to, ko katrs izdevums ietver

1. solis: pievienojiet iOS projektu Windows vidē

Ja jums jau ir Capacitor projekts Android, instalējiet @capacitor/ios un palaidiet npx cap add ios. Tas izveido mapi ios/ pat Windows. Vietēji to nevar atvērt Xcode, tāpēc katra izmaiņa natīvajā projektā ir faila rediģēšana, ko pārbaudāt nākamajā mākoņa būvē.

  • Ikona: viens 1024 × 1024 PNG attēls bez caurspīdīguma.
  • Ierīces un orientācija: mūsu spēle ir tikai iPhone un tikai ainavas režīmā. iPad atbalsts pievieno iPad ekrānuzņēmumus un vairāk izkārtojumu pārbaudei.
  • Šifrēšana: Apple eksporta atbilstības palīdzība iesaka atjaunināt lietotnes Info.plist, lai katrā iesniegšanā neatbildētu uz šifrēšanas jautājumiem. Mūsu spēle izmanto tikai sistēmas HTTPS, tāpēc iestatījām ITSAppUsesNonExemptEncryption uz false.
  • Tikai iekļautie faili: spēle ir lietotnes iekšienē un nekad neielādē mūsu vietni. Apple vadlīnija 4.2 prasa lietotnes, kas ir vairāk nekā pārpakota vietne.

Sākat no sagataves? Velvet Pool mēs ietinām ar Capacitor Google Play vajadzībām, tāpēc tās spēles mape jau ir izgājusi šo soli Android. Neviena mūsu sagatave vēl nav izgājusi App Store pārskatīšanu.

Skatiet Velvet Pool, sagatavi, ko jau esam ietinuši ar Capacitor

2. solis: parakstīšana bez Mac un atslēgu saišķa

Parakstīšana bija tā daļa, kam agrāk vajadzēja Mac. Ar App Store Connect API atslēgu Codemagic to var izdarīt mākonī.

  1. Apple izstrādātāju vietnē izveidojiet App ID (paketes identifikatoru) spēlei, ar In-App Purchase, ja tajā pārdodat kaut ko iekšpusē.
  2. App Store Connect izveidojiet lietotnes ierakstu ar šo paketes ID, SKU un primāro valodu.
  3. Izveidojiet App Store Connect API atslēgu. Codemagic dokumentācija iesaka atsevišķu atslēgu Codemagic vajadzībām. Pievienojiet to Codemagic integrāciju iestatījumos un nekad neliekiet atslēgas failu savā krātuvē.
  4. Ļaujiet Codemagic ģenerēt izplatīšanas sertifikātu un ar atslēgu iegūt provizionēšanas profilu. Tas var izmantot iepriekš ģenerētus sertifikātus un profilus no Apple izstrādātāju portāla.

Kas mums nogāja greizi

  • Pirmās divas būves neizdevās, jo paketes ID vēl nebija iestatīts provizionēšanas profils. Iestatiet sertifikātu un profilu pirms pirmās būves.
  • Profils, kas importēts bez atsauces nosaukuma Codemagic, nedarbojās, un poga neizdevās klusi. Vienmēr aizpildiet nosaukumu.
  • Pirmā API atslēgas iestatīšana neizdevās, jo ierakstījām nepareizu Issuer ID. Nokopējiet to no Apple atslēgu lapas.
  • Būves numuriem vienmēr jāpieaug. Pēdējā numura pieprasīšana no Apple neizdevās, kamēr iepriekšējā augšupielāde vēl tika apstrādāta, tāpēc pārgājām uz numuru, kas atvasināts no pulksteņa.

3. solis: būve Codemagic un pārbaude TestFlight

Būves recepte atrodas failā codemagic.yaml krātuvē. Mūsu recepte uzstāda atkarības, sagatavo spēles failus, sinhronizē tos iOS projektā ar npx cap sync ios, pielieto profilus un būvē IPA uz Mac mini M2 mašīnas. Pēc tam Codemagic publicē būvi App Store Connect. Mūsu pirmā veiksmīgā būve aizņēma apmēram sešas minūtes, un vēlākā produkcijas būve – mazāk par četrām.

Viens pārsteigums: ar submit_to_testflight, kas iestatīts uz false, Codemagic tomēr augšupielādēja būvi App Store Connect. Codemagic dokumentācija šo opciju apraksta kā nepieciešamo izplatīšanai beta grupām.

TestFlight ierobežojumi

  • Iekšējie testētāji: līdz 100 App Store Connect lietotājiem jūsu komandā.
  • Ārējie testētāji: līdz 10 000, pēc tam kad App Review apstiprina jūsu pirmo būvi ārējai testēšanai.
  • Būve testētājiem ir pieejama līdz 90 dienām.

Iekšējā testētāja uzaicinājums paliek gaidīšanas stāvoklī, līdz to pieņem no TestFlight e-pasta, un lietotne TestFlight nerādās, kamēr tas nav izdarīts. Pārbaudiet surogātpasta mapi.

Ko iPhone atrada, ko Windows nevarēja

  • Ierakstītie audio faili neielādējās. Lietotnē fetch atgrieza statusu 0 ar pareizajiem baitiem, un mūsu kods to uzskatīja par kļūdu. Pieņemot statusu 0 vietējiem failiem, problēma tika novērsta.
  • Pogas ainavas režīmā pie izgriezuma tika apgrieztas. Mēs pārstrādājām rezultātu izkārtojumu un pārbaudījām katru stūri.
  • Pirkuma ekrāni, kas kopīgi ar Android, joprojām rakstīja Google Play. iOS tie tagad rāda App Store.
  • Testa pirkumus, kas veikti TestFlight, nevarēja atiestatīt, tāpēc testa būvēm bija poga, kas simulē, ka pirkums nav veikts. Veikala būvēs tās nav.

4. solis: App Store Connect saraksts, privātums un vecuma vērtējums

Pārējais notiek pārlūkā. Šī ir secība, kas mums izdevās.

  1. App Information: apakšvirsraksts, kategorija un vecuma vērtējuma anketa. Atbildiet godīgi par to, ko spēle patiesībā rāda.
  2. Pricing and Availability: cena un valstis. Mac un Apple Vision Pro pieejamība bija ieslēgta pēc noklusējuma. Mēs to izslēdzām, jo mūsu spēle ir paredzēta skārienam.
  3. App Privacy: Apple prasa šos datus jaunām lietotnēm un atjauninājumiem, arī trešo pušu partneru praksi, kuru kods ir lietotnē, piemēram, reklāmu tīkliem un SDK. Nepieciešams publisks privātuma politikas URL.
  4. Lietotnes pirkumi, ja tādi ir: nosaukumi, apraksti, pārskatīšanas ekrānuzņēmums un piezīmes pārskatītājam.
  5. Versijas lapa: apraksts, atslēgvārdi, atbalsta un mārketinga URL, autortiesības, būve, pārskatīšanas piezīmes un izlaišanas opcija. Mēs izvēlējāmies manuālo izlaišanu.
  6. Ekrānuzņēmumi, pēc tam katra papildu valoda ar savu tekstu un uzņēmumiem.
  • Ekrānuzņēmumi: vadlīnija 2.3.3 saka, ka tiem jārāda lietotne lietošanā, nevis tikai virsraksta māksla vai ielādes ekrāns. Mūsu attēli ir reāli spēles kadri.
  • Lietotnes nosaukums: viens nosaukums, ko vēlējāmies, App Store jau bija aizņemts. Sagatavojiet otru nosaukumu vai nosaukumu ar īsu aprakstošu daļu.
  • Pārskatīšanas piezīmes: rakstījām, ka spēle ir pilnīga lietotnes iekšienē, darbojas bezsaistē, nepieprasa pieteikšanos un kur atrast pirkuma un atjaunošanas pogu.

Pirms sagataves publicēšanas kā lietotni izlasiet mūsu licences noteikumus

5. solis: iesniegšana un ko pārbauda Apple

Iesniedzot, jāpublicē App Privacy atbildes un jāapstiprina, ka tās ir patiesas, tad jānosūta melnraksta iesniegums. Mūsu iesniegums aizgāja 2026. gada 19. oktobrī ar lietotnes versiju un tās vienreizējo pirkumu, un statuss kļuva Waiting for Review (gaida pārskatīšanu). Ja pārskatīšana atgriežas ar noraidījumu, atbilde iet caur Resolution Center, ar faktiem, nevis aklu atkārtotu iesniegšanu.

Sagatavei no sagataves trīs vadlīnijas ir vissvarīgākās. 4.2 prasa vairāk nekā pārpakotu vietni, tāpēc spēli turiet lietotnes iekšienē. 4.3(a) lūdz neveidot vairākus paketes ID vienai un tai pašai lietotnei. 4.3(b) saka, ka Apple nevēlas lietotnes, ko nevar atšķirt no jau plaši pieejamām. Reskinam jāmaina noteikumi, saturs un saskarne, ne tikai māksla.

Ko ietver mūsu sagataves un ko varam izdarīt jūsu vietā

Katrā sagatavē ir gatavā mitināmā spēles mape, lasāms pirmkods, rokasgrāmata un 6 mēneši atbalsta vai 12 ar paplašinājumu. Atbalsts aptver sniegto failu uzstādīšanu un lietošanu, kā arī atkārtojamu defektu labošanu. iOS apvalks, natīvās reklāmas, lietotnes iekšpirkumi, mākoņa būves uzstādīšana un App Store saraksts ir atsevišķi pakalpojumi.

Ja nevēlaties paši uzstādīt parakstīšanu un Codemagic, nosūtiet mums sagatavi, savu Apple konta plānu un termiņu. Mēs atbildam ar apjomu, cenu un laiku, pirms sākam darbu. Pielāgota darba cenrādi nepublicējam.

Pieprasiet piedāvājumu, lai nogādātu spēli App Store

Biežāk uzdotie jautājumi

Vai var publicēt iPhone spēli, neīpašojot Mac?

Jā. Būvei joprojām vajadzīgs macOS un Xcode, bet tos nodrošina mākoņa pakalpojums, piemēram, Codemagic. Viss pārējais, no App Store Connect līdz TestFlight, darbojas pārlūkā un iPhone.

Cik maksā publicēšana App Store?

Apple Developer Program maksā 99 USD dalības gadā. Codemagic bezmaksas individuālais plāns ietver 500 macOS M2 minūtes mēnesī, un papildu minūtes tiek maksātas par minūti. Pieskaitiet spēles licenci un veikala grafiku.

Vai man vajadzīgs iPhone?

Reālai testēšanai – jā. Mūsu iPhone atrada trūkstošo audio, apgrieztās pogas un nepareizos veikala nosaukumus, ko Windows būve un pārlūka testi neparādīja.

Vai Apple pieņems HTML5 spēli, ietītu lietotnē?

Rezultātu nevaram apsolīt. Vadlīnija 4.2 prasa vairāk nekā pārpakotu vietni, tāpēc pilnu spēli iekļaujam lietotnē, nodrošinām darbību bezsaistē un piešķiram natīvas iespējas. Vadlīnija 4.3 attiecas arī uz reskiniem.

Vai jūsu sagatavēs ir iOS būve?

Nē. Mūsu izdevumi ir pārlūka spēles, un izstrādājumu lapās norādīts, ka natīvo lietotņu būves nav iekļautas. To varat veikt paši pēc šī ceļveža vai pasūtīt pēc piedāvājuma.