Publikace iOS aplikace bez Macu: návod s Expo a EAS
Autor: Mehdi Azizi
Aktualizováno , 9 min
Z Windows PC Expo a EAS zkompilují a pošlou tvoji iOS aplikaci Applu. Co bez Macu funguje, co ne a proč potřebuješ iPhone.
Dá se iOS aplikace publikovat bez Macu?
Ano. iOS aplikaci můžeš publikovat bez Macu, pokud ji postavíš s Expo a React Native. EAS Build zkompiluje tvoji aplikaci na Macích, které Expo provozuje v cloudu, a EAS Submit ji pak pošle do App Store Connect. Dokumentace Expo to říká jasně: EAS Submit funguje na macOS, Linuxu i Windows, takže k odeslání iOS buildu Mac nepotřebuješ.
Potřebuješ ale tři věci, které nic nenahradí: placený účet Apple Developer, iPhone, na kterém aplikaci doopravdy otestuješ, a prohlížeč, ve kterém vyplníš stránku aplikace v App Store Connect. Zbytek návodu popisuje, co z Windows PC funguje, co drhne a v jakém pořadí postupovat.
Všechny moje iOS aplikace jdou touhle cestou: Expo, EAS Build a pak EAS Submit. Takhle se na App Store dostaly Solys i TradaZen. Pracuju na Macu, ale žádný krok publikace na něm nezávisí: buildy běží v cloudu Expo a odeslání Applu jde přes příkazovou řádku.
Jak Expo a EAS nahrazují Mac
Abys pochopil, co je možné, musíš vědět, proč byl Mac povinný. iOS aplikace se musí zkompilovat v Xcode, nástroji od Applu, který běží jen na macOS, a to v dost nové verzi, abys se vyhnul odmítnutí ITMS-90725. Pak se musí podepsat certifikátem navázaným na tvůj vývojářský účet a odeslat do App Store Connect.
Expo tuhle práci rozdělí do tří nástrojů:
- Expo a React Native: aplikaci píšeš v JavaScriptu nebo TypeScriptu, na jakémkoli počítači.
- EAS Build: příkaz spustíš ze svého PC, kód odejde na Mac od Expo, který aplikaci zkompiluje a podepíše za tebe. Dostaneš soubor připravený k instalaci nebo odeslání.
- EAS Submit: vezme tenhle build a pošle ho do App Store Connect. Po zpracování u Applu, který kontroluje třeba ikonu (ITMS-90717), se objeví v TestFlightu.
Mac v řetězci pořád je. Jen už není tvůj. Jestli chceš vědět, proč tenhle stack doporučuju začátečníkům, přečti si stránku React Native a Expo pro mobilní aplikaci.
Co jde z Windows PC
Psaní aplikace
Celý vývoj jde na Windows bez omezení: tvůj editor (VS Code, Cursor), Node.js, terminál. Pokud programuješ s pomocí Claude nebo ChatGPT, nic se nemění. K tomu si přečti jak vytvořit iOS aplikaci s AI.
Vidět aplikaci na iPhonu, zatímco programuješ
Na začátek stačí aplikace Expo Go na iPhonu: načte QR kód z terminálu a spustí tvůj projekt. Každá změna se na telefonu objeví během pár sekund. Ideální pro první obrazovky. Od května 2026 zůstává verze Expo Go z App Storu na SDK 54: vytvoř projekt kompatibilní s ní, nebo pro novější SDK použij eas go a TestFlight.
Expo Go má limit: obsahuje jen nativní moduly, které dodává Expo. Jakmile tvoje aplikace použije nativní knihovnu, která v něm není, třeba SDK RevenueCat pro předplatné, potřebuješ development build: vlastní verzi tvé aplikace, zkompilovanou přes EAS Build, kterou si nainstaluješ na iPhone.
Instalace buildu na iPhone bez App Storu
EAS nabízí interní distribuci. iPhone zaregistruješ příkazem eas device:create a pak spustíš build s distribucí internal. Dostaneš odkaz na instalaci. Apple tuhle metodu omezuje: jeden účet takhle může distribuovat nejvýš na 100 iPhonů ročně a každé nové zařízení vyžaduje nový build nebo nové podepsání. Pro tebe a pár blízkých to bohatě stačí.
Certifikáty bez Xcode
Podepisování je to, na čem se i na Macu zasekne nejvíc začátečníků, až po chybu ITMS-90034 při odeslání. S EAS se k Apple účtu přihlásíš z příkazové řádky a nástroj umí sám vygenerovat distribuční certifikát i provisioning profile. Klíčenku nikdy neotevřeš.
Odeslání aplikace Applu a publikace
eas submit --platform ios pošle tvůj build do App Store Connect. Oba kroky můžeš taky spojit volbou --auto-submit u eas build. Všechno ostatní probíhá v prohlížeči: stránka v App Storu, screenshoty, údaje o ochraně soukromí, předplatné, TestFlight a odeslání ke kontrole. App Store Connect je webová aplikace, na Windows funguje skvěle.
Co bez Macu nejde (nebo je těžší)
Lokální iOS simulátor
iOS simulátor je součást Xcode, takže na Windows neběží. V praxi to nevadí: tvůj iPhone je na testování lepší než simulátor. Expo v září 2026 oznámilo cloudový iOS simulátor, EAS Simulator, v době psaní ale jen s omezeným přístupem. Nestav na něm svůj postup, dokud nebude otevřený všem.
Ladění nativního kódu
Když pád pochází z nativního kódu (Swift, Objective-C, špatně nastavená knihovna), diagnostické nástroje Applu jsou v Xcode. Bez Macu jsi odkázaný na build logy z EAS a nástroj jako Sentry, který hlásí pády nainstalované aplikace. Jde to, ale pomaleji. Proto se u první aplikace drž udržovaných knihoven kompatibilních s Expo, čímž se vyhneš i odmítnutí ITMS-90338 při odeslání.
Ruční psaní nativních rozšíření
Widgety, rozšíření notifikací, specifické nativní targety: s Expo to jde díky config pluginům, ale bez Xcode na kontrolu vygenerovaného projektu tě každá chyba stojí další build. U první aplikace si tyhle funkce nech na později.
Lokální kompilace
Lokální buildy EAS (volba --local) nejsou na Windows podporované. Na PC tedy tvoje iOS buildy jdou přes cloud Expo. Bezplatný tarif EAS zahrnuje omezený počet buildů měsíčně a frontu: než si naplánuješ intenzivní týden práce, ověř si aktuální podmínky na stránce s ceníkem Expo.
Účet Apple Developer: povinný, bez výjimky
Tohle žádný trik neobejde, ani Apple Developer Enterprise Program, který je vyhrazený pro interní aplikace velkých organizací. Bez členství v Apple Developer Program nemáš App Store Connect, TestFlight, interní distribuci ani odeslání do App Storu. Členství stojí 99 $ ročně, účtovaných v tvé měně.
Dvě rady, než se zaregistruješ:
- Dobře si vyber mezi individuálním účtem a organizací. U individuálního účtu se v App Storu jako prodejce zobrazuje tvoje jméno. U organizace název tvé firmy, ale Apple pak chce číslo D-U-N-S a ověření trvá déle.
- Počítej s pár dny. Schválení účtu není vždycky okamžité. Zaregistruj se, jakmile víš, že budeš publikovat, ne den před odesláním.
Proč iPhone na testování opravdu potřebuješ
Technicky jde iOS aplikaci publikovat, aniž bys ji kdy držel v ruce. Důrazně to nedoporučuju, a Apple taky ne: jeho pravidla kontroly (guideline 2.1) vyžadují, aby aplikace byla před odesláním otestovaná na zařízení kvůli chybám a stabilitě. Tvoji uživatelé budou mít jen tohle: skutečný iPhone.
Tohle ti ukáže jen skutečný iPhone:
- Skutečné první spuštění bez vývojového serveru: tam se schovávají pády při startu.
- Nákupy v aplikaci v testovacím prostředí, abys ověřil, že paywall ukazuje správné ceny a předplatné aplikaci opravdu odemkne.
- Notifikace, kamera, vibrace, oprávnění, které se jinde chovají jinak nebo vůbec.
- Skutečné rozložení: výřez nebo Dynamic Island, domovská lišta, klávesnice, která zakryje pole.
- Plynulost, kterou výkonný počítač často zamaskuje.
Stačí novější použitý iPhone, pokud na něm běží verze iOS podporovaná tvou verzí Expo SDK. A když můžeš, půjč si i iPhone jiné velikosti: aplikace, která projde na velkém displeji, může být na malém oříznutá. Přesně kvůli tomu mi Apple odmítl Solys, popisuju to v článku proč Apple odmítá aplikace.
Bez Macu to jde. Bez iPhonu posíláš Applu aplikaci, kterou jsi nikdy neviděl fungovat.
Kroky z Windows, popořadě
- Vytvoř projekt pomocí
npx create-expo-appa první obrazovky otestuj v Expo Go. - Nainstaluj EAS CLI pomocí
npm install -g eas-cli, pakeas loginaeas build:configure. - Zaregistruj se do Apple Developer Program, jakmile projekt začne nabírat tvar.
- Zaregistruj iPhone pomocí
eas device:createa spusť development build. - Vytvoř stránku aplikace v App Store Connect se stejným bundle identifierem jako v konfiguraci Expo.
- Spusť produkční build pomocí
eas build --platform ios. - Odešli ho pomocí
eas submit --platform iosa otestuj v TestFlightu. Tenhle krok podrobně popisuje návod TestFlight pro testování aplikace. - Vyplň stránku a pošli ke kontrole z prohlížeče. Propagační text pak můžeš měnit i bez nové verze.
V téhle fázi se často opakují tři pasti. Číslo buildu se musí s každým odesláním zvýšit: zapni automatické navyšování v EAS a nemusíš na to myslet. Otázka na šifrování blokuje každý build, dokud na ni neodpovíš: můžeš ji jednou provždy deklarovat v konfiguraci aplikace. A bundle identifier musí být všude stejný, jinak EAS Submit tvoji aplikaci nenajde. Další postup, od stránky aplikace po schválení, pokrývá stránka publikace aplikace na App Store.
Publikuj svoji první aplikaci, bez Macu a bez bloudění
Mac už skutečnou překážkou není. Ty skutečné jsou jinde: vybrat aplikaci, která má šanci vydělávat, napojit fungující předplatné, připravit podklady, které Apple přijme. To pokrývá čtyřkrokový program iOS Kit, který projdeš svým tempem. Na podklady je tu Apple Review Kit s mým checklistem před odesláním a poznámkami pro testera. Úvodní stránka ukazuje, jak vytvořit mobilní aplikaci, aniž bys začínal od nuly s Expo a Claude Code, s Macem i bez něj.
Konečné rozhodnutí o publikaci tvé aplikace zůstává na Applu a žádný kit ho nemůže zaručit. Můžu ti ale předat metodu, kterou používám na svých vlastních aplikacích.
Časté dotazy
Jak publikovat iOS aplikaci bez Macu?
S Expo a React Native nahradí tvůj Mac ten, který provozuje Expo. Programuješ na jakémkoli počítači, EAS Build aplikaci zkompiluje a podepíše v cloudu a EAS Submit ji pošle do App Store Connect. Potřebuješ taky placený účet Apple Developer, prohlížeč na vyplnění stránky aplikace a iPhone, na kterém aplikaci doopravdy otestuješ.
Jaké jsou kroky publikace iOS aplikace z Windows?
Vytvoř projekt s Expo, nainstaluj EAS CLI a zaregistruj se do Apple Developer Program. Zaregistruj iPhone, spusť development build a pak vytvoř stránku v App Store Connect se stejným bundle identifierem jako v konfiguraci Expo. Potom spusť produkční build, odešli ho přes EAS Submit a otestuj v TestFlightu, nakonec vyplň stránku a pošli aplikaci ke kontrole z prohlížeče.
Kolik stojí publikace aplikace na App Store?
Členství v Apple Developer Program stojí 99 $ ročně, účtovaných v tvé měně. Je povinné: bez něj nemáš App Store Connect, TestFlight, interní distribuci ani odeslání do App Storu. Na straně Expo zahrnuje bezplatný tarif EAS omezený počet buildů měsíčně a frontu: aktuální podmínky si ověř na stránce s ceníkem Expo.
Potřebuju iPhone, když publikuju iOS aplikaci bez Macu?
Technicky ne, ale důrazně to nedoporučuju, a Apple taky ne: jeho pravidla kontroly (guideline 2.1) vyžadují, aby aplikace byla před odesláním otestovaná na zařízení kvůli chybám a stabilitě. Stačí novější použitý iPhone, pokud na něm běží verze iOS podporovaná tvou verzí Expo SDK.
Jak otestovat iOS aplikaci bez Macu?
Nainstaluj si na iPhone aplikaci Expo Go: načte QR kód z terminálu a spustí tvůj projekt, každá změna je vidět během pár sekund. Expo Go obsahuje jen nativní moduly, které dodává Expo. Jakmile tvoje aplikace použije nativní knihovnu, která v něm chybí, třeba SDK RevenueCat, potřebuješ development build zkompilovaný přes EAS Build. Jak otestovat finální build, se dočteš v článku TestFlight pro testování aplikace.
Jaká jsou omezení vývoje pro iOS bez Macu?
Nemůžeš používat lokální iOS simulátor: je součástí Xcode, takže na Windows neběží. Lokální buildy EAS (--local) nejsou na Windows podporované: tvoje iOS buildy jdou přes cloud Expo. Ladění nativního kódu a ruční psaní nativních rozšíření jsou možné, ale těžší, protože nástroje Applu jsou v Xcode.