Publikace hry v App Store bez Macu: náš postup s cloudovým sestavením
Jak jsme dostali hru HTML5 z počítače se systémem Windows až do revize App Store pomocí Capacitoru, Codemagicu a TestFlightu, a chyby, které nás stály sestavení.

Ano, hru v App Store publikovat jde i bez Macu. Mac ale stále potřebujete, jen si ho pronajmete: hru HTML5 zabalíte do Capacitoru na svém PC, cloudová služba jako Codemagic ji zkompiluje a podepíše na vlastních strojích s macOS, sestavení se odešle do App Store Connect a TestFlightu a výpis, údaje o soukromí a odeslání dokončíte v prohlížeči. Bez iPhonu se neobejdete, protože někdo musí sestavení vyzkoušet dřív, než to udělá Apple.
Postupovali jsme z Windows s vlastní akční hrou Little Ninja Dash. První úspěšné cloudové sestavení trvalo asi šest minut a aplikace šla do App Review 19. října 2026; podle našich záznamů je u ní stav Waiting for Review. Tento průvodce neuvádí výsledek revize. Údaje o Applu a Codemagicu pocházejí z jejich oficiálních stránek, přečtených 30. října 2026. Zbytek je to, co zapsaly naše poznámky, včetně částí, které se nepovedly.
Co potřebujete k publikaci v App Store bez Macu
- Členství v Apple Developer Program: 99 USD za každý rok členství. Přihlásit se mohou jednotlivci i organizace. Organizace potřebují číslo D-U-N-S a veřejné webové stránky.
- Účet v Codemagicu. Jeho bezplatný individuální plán obsahuje 500 minut sestavení na macOS M2 měsíčně a jedno sestavení najednou; potom stojí každá minuta na Mac mini M2 0,095 USD. Bezplatné minuty jsou určeny pro jednotlivce, ne pro týmy.
- Soukromý Git repozitář s vaším projektem. Codemagic sestavuje z repozitáře, který připojíte. U našich šablon je soukromý repozitář nutný: veřejný by šířil zdrojový kód, což licence zakazuje.
- iPhone s aplikací TestFlight pro testování skutečného sestavení.
- Hra, která funguje offline ze své vlastní složky a je zabalená pomocí Capacitoru.
Apple od 28. dubna 2026 vyžaduje, aby aplikace nahrané do App Store Connect byly sestaveny v Xcode 26 nebo novějším se sadou iOS 26 SDK. Stránka Capacitoru pro iOS také uvádí Xcode 26.0 nebo novější a podporuje iOS 15 a vyšší. Xcode běží jen na macOS, a proto se sestavení dělá na strojích Codemagicu, a ne na vašem PC.
Naše edice šablon jsou hry pro prohlížeč. Každá stránka edice uvádí, že nativní sestavení aplikací není zahrnuto. Jedna licence pokrývá jeden koncový produkt a tuto hru můžete publikovat, kde chcete, včetně App Store a Google Play. Samotnou šablonu dál prodávat nesmíte. Pokud plánujete hráčům účtovat peníze, placenou aplikací nebo nákupy v aplikaci, nejdřív se nás zeptejte.
Prohlédněte si šablony a to, co která edice obsahuje
Krok 1: přidejte projekt iOS ve Windows
Pokud už máte projekt Capacitoru pro Android, nainstalujte @capacitor/ios a spusťte npx cap add ios. Vytvoří se složka ios/, a to i ve Windows. Otevřít ji lokálně v Xcode nemůžete, takže každá změna nativního projektu je úprava souboru, kterou ověříte v dalším cloudovém sestavení.
- Ikona: jeden PNG o rozměru 1024 × 1024 bez průhlednosti.
- Zařízení a orientace: naše hra je jen pro iPhone a jen na šířku. Podpora iPadu přidá snímky z iPadu a další rozložení k otestování.
- Šifrování: nápověda Applu k exportní shodě doporučuje upravit Info.plist aplikace, aby se u každého odeslání neodpovídalo na otázky o šifrování. Naše hra používá jen systémové HTTPS, takže jsme nastavili ITSAppUsesNonExemptEncryption na false.
- Jen přibalené soubory: hra je uvnitř aplikace a nikdy nenačítá náš web. Pravidlo 4.2 Applu požaduje aplikace, které jdou nad rámec přebalené webové stránky.
Začínáte od šablony? Velvet Pool jsme zabalili pomocí Capacitoru pro Google Play, takže jeho složka game/ tímto krokem na Androidu už prošla. Žádná z našich šablon zatím neprošla revizí App Store.
Podívejte se na Velvet Pool, šablonu, kterou jsme už zabalili pomocí Capacitoru
Krok 2: podepisování bez Macu a Klíčenky
Podepisování býval důvod, proč byl potřeba Mac. S klíčem API z App Store Connect ho Codemagic zvládne v cloudu.
- Na webu Apple Developer vytvořte App ID (identifikátor balíčku) pro hru, s In-App Purchase, pokud v ní něco prodáváte.
- V App Store Connect vytvořte záznam aplikace s tímto ID balíčku, SKU a primárním jazykem.
- Vygenerujte klíč API App Store Connect. Dokumentace Codemagicu doporučuje vyhrazený klíč jen pro Codemagic. Přidejte ho do nastavení integrací v Codemagicu a soubor s klíčem nikdy neukládejte do repozitáře.
- Nechte Codemagic vytvořit distribuční certifikát a pomocí klíče stáhnout provisioning profil. Umí použít certifikáty, které vytvořil dříve, a profily z portálu Apple Developer.
Co se u nás pokazilo
- Prvních dvě sestavení selhala, protože pro ID balíčku ještě nebyl nastaven provisioning profil. Certifikát a profil nastavte před prvním sestavením.
- Profil importovaný v Codemagicu bez referenčního názvu nefungoval a tlačítko tiše selhalo. Vždy vyplňte název.
- Nastavení prvního klíče API selhalo, protože jsme zadali špatné ID vydavatele (Issuer ID). Zkopírujte ho a vložte z Applovy stránky klíčů.
- Čísla sestavení musí vždy růst. Dotaz na poslední číslo u Applu selhal, zatímco předchozí nahrávání ještě zpracovávalo, takže jsme přešli na číslo odvozené z hodin.
Krok 3: sestavení v Codemagicu a test v TestFlightu
Recept na sestavení je v souboru codemagic.yaml v repozitáři. Náš nainstaluje závislosti, připraví soubory hry, synchronizuje je do projektu iOS příkazem npx cap sync ios, použije profily a sestaví IPA na stroji Mac mini M2. Codemagic pak sestavení publikuje v App Store Connect. Naše první úspěšné sestavení trvalo asi šest minut, pozdější produkční sestavení pod čtyři.
Jedno překvapení: když jsme nastavili submit_to_testflight na false, Codemagic přesto sestavení nahrál do App Store Connect. Dokumentace Codemagicu popisuje tuto volbu jako tu, která je nutná pro distribuci betaskupinám.
Limity TestFlightu
- Interní testeři: až 100 uživatelů App Store Connect ve vašem týmu.
- Externí testeři: až 10 000, poté co App Review schválí vaše první sestavení pro externí testování.
- Sestavení zůstane testerům dostupné až 90 dní.
Pozvánka interního testera zůstává čekající, dokud ji nepřijmete z e-mailu TestFlight, a aplikace se v TestFlightu před tím neobjeví. Zkontrolujte složku se spamem.
Co iPhone našel, co Windows nevidělo
- Nahrané zvukové soubory se nenačetly. Uvnitř aplikace fetch vracel stav 0 se správnými bajty a náš kód to bral jako chybu. Přijetí stavu 0 u místních souborů to opravilo.
- Tlačítka v režimu na šířku byla u výřezu useknutá. Přepracovali jsme rozložení výsledků a otestovali každý roh.
- Obrazovky nákupu sdílené s Androidem stále říkaly Google Play. Na iOS teď říkají App Store.
- Testovací nákupy provedené v TestFlightu nešly resetovat, takže testovací sestavení dostalo tlačítko, které simuluje, že nic nekoupeno nebylo. Obchodní sestavení ho nemají.
Krok 4: výpis v App Store Connect, soukromí a věkové hodnocení
Zbytek se dělá v prohlížeči. Toto je pořadí, které nám fungovalo.
- App Information: podtitul, kategorie a dotazník věkového hodnocení. Odpovídejte pravdivě podle toho, co hra skutečně ukazuje.
- Pricing and Availability: cena a země. Dostupnost pro Mac a Apple Vision Pro byla zapnutá ve výchozím nastavení. Vypnuli jsme ji, protože naše hra je určena pro dotyk.
- App Privacy: Apple tyto údaje vyžaduje u nových aplikací i aktualizací, včetně postupů externích partnerů, jejichž kód je v aplikaci, například reklamních sítí a SDK. Vyžaduje se veřejná adresa zásad ochrany soukromí.
- Nákupy v aplikaci, pokud nějaké jsou: názvy, popisy, snímek obrazovky pro revizi a poznámky pro recenzenta.
- Stránka verze: popis, klíčová slova, adresy podpory a marketingu, autorská práva, sestavení, poznámky pro revizi a volba vydání. Zvolili jsme ruční vydání.
- Snímky obrazovky, pak každý další jazyk s vlastním textem a záběry.
- Snímky obrazovky: pravidlo 2.3.3 říká, že mají ukazovat aplikaci při používání, ne jen titulní grafiku nebo úvodní obrazovku. Naše jsou skutečné záběry hry.
- Název aplikace: jeden název, který jsme chtěli, byl v App Store už obsazený. Mějte připravený druhý název nebo název s krátkou popisnou částí.
- Poznámky pro revizi: napsali jsme, že hra je v aplikaci kompletní, funguje offline, nevyžaduje přihlášení a kde najít nákup a tlačítko obnovení.
Než šablonu publikujete jako aplikaci, přečtěte si naše podmínky licence
Krok 5: odeslání a co Apple kontroluje
Při odeslání musíte zveřejnit odpovědi o App Privacy, potvrdit, že jsou pravdivé, a poslat návrh odeslání. Naše šlo 19. října 2026 s verzí aplikace a jejím jednorázovým nákupem a stav se změnil na Waiting for Review. Pokud revize přijde zamítnutí, odpověď jde přes Resolution Center (centrum řešení), s fakty, ne slepým novým odesláním.
U hry vytvořené ze šablony mají největší váhu tři pravidla. 4.2 požaduje víc než přebalenou webovou stránku, takže hru udržujte uvnitř aplikace. 4.3(a) žádá, abyste nevytvářeli několik ID balíčků pro stejnou aplikaci. 4.3(b) říká, že Apple nechce aplikace, které nejde odlišit od toho, co je už široce k dispozici. Reskin musí měnit pravidla, obsah a rozhraní, ne jen grafiku.
Co obsahují naše šablony a co pro vás můžeme udělat
Každá šablona přichází s hotovou složkou hry pro hostování, čitelným zdrojovým kódem, příručkou a 6 měsíci podpory, nebo 12 s rozšířením. Podpora zahrnuje instalaci a používání dodaných souborů a opravu reprodukovatelných chyb. Obal pro iOS, nativní reklamy, nákupy v aplikaci, nastavení cloudového sestavení a výpis v App Store jsou samostatné služby.
Pokud se nechcete podepisováním a Codemagicem zabývat sami, pošlete nám šablonu, plán svého účtu Apple a termín. Před jakoukoli prací vám odpovíme s rozsahem, cenou a časováním. Ceník zakázkové práce nezveřejňujeme.
Vyžádejte si nabídku na přenesení vaší hry do App Store
Často kladené otázky
Mohu publikovat hru pro iPhone, aniž bych vlastnil Mac?
Ano. Pro sestavení stále potřebujete macOS a Xcode, ale poskytne je cloudová služba jako Codemagic. Vše ostatní, od App Store Connect po TestFlight, funguje v prohlížeči a na iPhonu.
Kolik stojí publikace v App Store?
Apple Developer Program stojí 99 USD za každý rok členství. Bezplatný individuální plán Codemagicu zahrnuje 500 minut macOS M2 měsíčně a další minuty se účtují podle minut. Připočtěte licenci ke hře a grafiku pro obchod.
Potřebuji iPhone?
Pro skutečné testování ano. Náš iPhone našel chybějící zvuk, useknutá tlačítka a špatné názvy v obchodě, které sestavení pro Windows ani testy v prohlížeči neukázaly.
Přijme Apple webovou hru v HTML5 zabalenou do aplikace?
Výsledek nemůžeme slíbit. Pravidlo 4.2 požaduje víc než přebalenou webovou stránku, takže celou hru balíme do aplikace, necháváme ji fungovat offline a dáváme jí nativní funkce. Pravidlo 4.3 platí i pro reskiny.
Obsahují vaše šablony sestavení pro iOS?
Ne. Naše edice jsou hry pro prohlížeč a stránky produktů uvádějí, že nativní sestavení aplikací nejsou zahrnuta. Tento postup můžete použít sami, nebo si ho u nás objednejte podle nabídky.
