Objavi iOS aplikaciju bez Maca: vodič za Expo i EAS
Autor: Mehdi Azizi
Ažurirano , 9 min
S Windows računala Expo i EAS kompajliraju i šalju tvoju iOS aplikaciju Appleu. Što radi bez Maca, što zapinje i zašto ti treba iPhone.
Može li se objaviti iOS aplikacija bez Maca?
Da. iOS aplikaciju možeš objaviti bez Maca ako je radiš s Expom i React Nativeom. EAS Build kompajlira tvoju aplikaciju na Macovima koje Expo drži u cloudu, a EAS Submit je zatim šalje u App Store Connect. Expova dokumentacija to jasno kaže: EAS Submit radi na macOS-u, Linuxu i Windowsu, pa ti ne treba Mac da isporučiš iOS build.
S druge strane, trebaju ti tri stvari koje ništa ne može zamijeniti: plaćeni Apple Developer račun, iPhone da aplikaciju stvarno testiraš i preglednik da ispuniš stranicu aplikacije u App Store Connectu. Ostatak vodiča objašnjava što radi s Windows računala, što zapinje i kojim redom ide koji korak.
Sve moje iOS aplikacije prolaze kroz isti lanac: Expo, EAS Build, pa EAS Submit. Tako su Solys i TradaZen došli na App Store. Ja radim na Macu, ali nijedan korak objave ne ovisi o njemu: buildovi se rade u Expovom cloudu, a slanje Appleu ide preko komandne linije.
Kako Expo i EAS zamjenjuju Mac
Da bi shvatio što je moguće, moraš znati zašto je Mac bio obavezan. iOS aplikacija mora se kompajlirati u Xcodeu, Appleovom alatu koji radi samo na macOS-u, i to u dovoljno novoj verziji da izbjegneš odbijanje ITMS-90725. Zatim se mora potpisati certifikatom vezanim uz tvoj developerski račun i poslati u App Store Connect.
Expo taj posao dijeli na tri alata:
- Expo i React Native: aplikaciju pišeš u JavaScriptu ili TypeScriptu, na bilo kojem računalu.
- EAS Build: naredbu pokrećeš sa svog PC-ja, kod odlazi na Expov Mac koji umjesto tebe kompajlira i potpisuje aplikaciju. Dobiješ datoteku spremnu za instalaciju ili slanje.
- EAS Submit: uzima taj build i šalje ga u App Store Connect. Nakon Appleove obrade, koja na primjer provjerava ikonu (ITMS-90717), build se pojavljuje u TestFlightu.
Mac i dalje postoji u lancu. Samo više nije tvoj. Ako želiš znati zašto taj stack preporučujem početnicima, pročitaj stranicu React Native i Expo za mobilnu aplikaciju.
Što je moguće s Windows računala
Kodiranje aplikacije
Cijeli razvoj radi na Windowsu bez ograničenja: tvoj editor (VS Code, Cursor), Node.js, terminal. Ako kodiraš uz pomoć Claudea ili ChatGPT-a, ni tu se ništa ne mijenja. O tome pročitaj kako napraviti iOS aplikaciju s AI-jem.
Gledanje aplikacije na iPhoneu dok kodiraš
Za početak, aplikacija Expo Go instalirana na iPhoneu čita QR kod prikazan u terminalu i učitava tvoj projekt. Svaka izmjena pojavi se na mobitelu za nekoliko sekundi. Idealno za prve ekrane. Od svibnja 2026. App Store verzija Expo Goa ostaje na SDK-u 54: napravi projekt kompatibilan s njom ili za noviji SDK koristi eas go i TestFlight.
Expo Go ima ograničenje: sadrži samo nativne module koje daje Expo. Čim tvoja aplikacija koristi nativnu biblioteku koje tamo nema, poput RevenueCatova SDK-a za pretplate, treba ti development build: tvoja vlastita verzija aplikacije, kompajlirana preko EAS Builda, koju instaliraš na iPhone.
Instaliranje builda na iPhone bez App Storea
EAS nudi internu distribuciju. Registriraš iPhone naredbom eas device:create, pa pokreneš build s distribucijom internal. Dobiješ link za instalaciju. Apple ograničava ovu metodu: jedan račun može tako distribuirati na najviše 100 iPhonea godišnje, a svaki novi uređaj traži novi build ili novo potpisivanje. Za tebe i par bliskih ljudi to je i više nego dovoljno.
Upravljanje certifikatima bez Xcodea
Potpisivanje je ono što početnike na Macu najviše koči, sve do greške ITMS-90034 pri slanju. S EAS-om se na Apple račun spajaš iz komandne linije, a alat može sam generirati distribucijski certifikat i provisioning profil. Keychain Access nikad ne otvaraš.
Slanje aplikacije Appleu i objava
eas submit --platform ios šalje tvoj build u App Store Connect. Oba koraka možeš i spojiti opcijom --auto-submit naredbe eas build. Sve ostalo radi se u pregledniku: stranica na App Storeu, screenshotovi, izjave o privatnosti, pretplate, TestFlight i slanje na pregled. App Store Connect je web aplikacija i odlično radi na Windowsu.
Što nije moguće (ili je teže) bez Maca
Lokalni iOS simulator
iOS simulator dio je Xcodea, pa ne radi na Windowsu. U praksi to nije strašno: tvoj iPhone je za testiranje bolji od simulatora. Expo je u rujnu 2026. najavio iOS simulator u cloudu, EAS Simulator, koji je u trenutku pisanja još u ograničenom pristupu. Nemoj graditi svoj način rada na njemu dok ne bude otvoren svima.
Debugiranje nativnog koda
Ako rušenje dolazi iz nativnog koda (Swift, Objective-C, loše podešena biblioteka), Appleovi dijagnostički alati su u Xcodeu. Bez Maca ovisiš o EAS-ovim build logovima i alatu poput Sentryja, koji javlja rušenja instalirane aplikacije. Izvedivo je, ali sporije. Zato se za prvu aplikaciju drži održavanih biblioteka kompatibilnih s Expom, čime izbjegavaš i odbijanje ITMS-90338 pri slanju.
Ručno pisanje nativnih ekstenzija
Widgeti, ekstenzije za notifikacije, specifični nativni targeti: s Expom je to moguće zahvaljujući config pluginovima, ali bez Xcodea da pregledaš generirani projekt svaka greška košta još jedan build. Za prvu aplikaciju ostavi te funkcije za kasnije.
Lokalno kompajliranje
Lokalni EAS buildovi (opcija --local) nisu podržani na Windowsu. Na PC-ju tvoji iOS buildovi zato idu kroz Expov cloud. Besplatni EAS plan uključuje ograničen broj buildova mjesečno, uz red čekanja: provjeri aktualne uvjete na Expovoj stranici s cijenama prije nego isplaniraš tjedan intenzivnog rada.
Apple Developer račun: obavezan, bez iznimke
Nijedan trik to ne zaobilazi, čak ni Apple Developer Enterprise Program, namijenjen internim aplikacijama velikih organizacija. Bez članstva u Apple Developer Programu nema App Store Connecta, nema TestFlighta, nema interne distribucije i nema slanja na App Store. Članstvo košta 99 $ godišnje, naplaćeno u tvojoj valuti.
Dva savjeta prije registracije:
- Dobro odaberi između individualnog računa i organizacije. Na individualnom računu na App Storeu kao prodavač piše tvoje ime. Kod organizacije piše naziv tvoje firme, ali Apple tada traži D-U-N-S broj i dulju provjeru.
- Računaj na nekoliko dana. Odobrenje računa nije uvijek trenutačno. Registriraj se čim znaš da ćeš objavljivati, a ne dan prije slanja.
Stvarna potreba za iPhoneom za testiranje
Tehnički možeš objaviti iOS aplikaciju a da je nikad nisi držao u ruci. Ja ti to odlučno ne preporučujem, a ni Apple: njegova pravila pregleda (guideline 2.1) traže da je aplikacija prije slanja testirana na uređaju, zbog bugova i stabilnosti. Tvoji korisnici imat će samo to: pravi iPhone.
Evo što ti samo pravi iPhone pokazuje:
- Stvarno prvo pokretanje, bez development servera: tu se kriju rušenja pri pokretanju.
- Kupnje unutar aplikacije u testnom okruženju, da provjeriš prikazuje li paywall prave cijene i otključava li pretplata stvarno aplikaciju.
- Notifikacije, kameru, vibracije, dopuštenja, koja se drugdje ponašaju drukčije ili nikako.
- Stvaran raspored: notch ili Dynamic Island, home bar, tipkovnicu koja prekrije polje.
- Fluidnost, koju snažno računalo često sakrije.
Dovoljan je noviji rabljeni iPhone, pod uvjetom da vrti verziju iOS-a koju podržava tvoja verzija Expo SDK-a. I ako možeš, posudi i iPhone druge veličine: aplikacija koja prolazi na velikom ekranu na malom može biti odrezana. Upravo zbog toga mi je odbijen Solys, o čemu pišem u članku zašto Apple odbija aplikaciju.
Bez Maca je moguće. Bez iPhonea Appleu šalješ aplikaciju koju nikad nisi vidio da radi.
Koraci, redom, s Windowsa
- Napravi projekt naredbom
npx create-expo-appi testiraj prve ekrane u Expo Gou. - Instaliraj EAS CLI naredbom
npm install -g eas-cli, zatimeas loginieas build:configure. - Registriraj se u Apple Developer Program čim projekt počne dobivati oblik.
- Registriraj svoj iPhone naredbom
eas device:createi pokreni development build. - Napravi stranicu aplikacije u App Store Connectu, s istim bundle identifierom kao u Expo konfiguraciji.
- Pokreni produkcijski build naredbom
eas build --platform ios. - Pošalji ga naredbom
eas submit --platform ios, pa ga testiraj u TestFlightu. Vodič TestFlight za testiranje aplikacije detaljno opisuje taj korak. - Ispuni stranicu i pošalji na pregled iz preglednika. Promotivni tekst kasnije možeš mijenjati bez nove verzije.
Tri zamke se u ovoj fazi često ponavljaju. Broj builda mora rasti sa svakim slanjem: uključi EAS-ovo automatsko povećavanje i više ne misli na to. Pitanje o enkripciji blokira svaki build dok na njega ne odgovoriš: možeš ga jednom zauvijek deklarirati u konfiguraciji aplikacije. I bundle identifier mora biti posvuda isti, inače EAS Submit ne nalazi tvoju aplikaciju. Za nastavak, od stranice aplikacije do odobrenja, stranica objava aplikacije na App Storeu pokriva svaki korak.
Objavi svoju prvu aplikaciju, bez Maca i bez lutanja
Mac više nije prava prepreka. Prave prepreke su drugdje: odabrati aplikaciju koja ima šanse zaraditi, spojiti pretplate koje rade, pripremiti dokumentaciju koju Apple prihvaća. To pokriva put u četiri koraka iz iOS Kita, koji prolaziš svojim tempom. Za dokumentaciju, Apple Review Kit sadrži moju checklistu prije slanja i bilješke za testera. Naslovnica pokazuje kako napraviti mobilnu aplikaciju bez kretanja od nule uz Expo i Claude Code, s Macom ili bez njega.
Konačna odluka o objavi tvoje aplikacije ostaje na Appleu i nijedan kit je ne može jamčiti. Ono što ti ja mogu dati je metoda koju primjenjujem na vlastitim aplikacijama.
Česta pitanja
Kako objaviti iOS aplikaciju bez Maca?
S Expom i React Nativeom tvoj Mac zamjenjuje Mac koji drži Expo. Kodiraš na bilo kojem računalu, EAS Build kompajlira i potpisuje aplikaciju u cloudu, a EAS Submit je šalje u App Store Connect. Trebaju ti i plaćeni Apple Developer račun, preglednik za ispunjavanje stranice aplikacije i iPhone da aplikaciju stvarno testiraš.
Koji su koraci za objavu iOS aplikacije s Windowsa?
Napravi projekt s Expom, instaliraj EAS CLI i registriraj se u Apple Developer Program. Registriraj iPhone, pokreni development build, pa napravi stranicu aplikacije u App Store Connectu s istim bundle identifierom kao u Expo konfiguraciji. Zatim pokreni produkcijski build, pošalji ga preko EAS Submita i testiraj u TestFlightu, pa ispuni stranicu i pošalji aplikaciju na pregled iz preglednika.
Koliko košta objava aplikacije na App Storeu?
Članstvo u Apple Developer Programu košta 99 $ godišnje, naplaćeno u tvojoj valuti. Obavezno je: bez njega nema App Store Connecta, TestFlighta, interne distribucije ni slanja na App Store. Što se Expa tiče, besplatni EAS plan uključuje ograničen broj buildova mjesečno, uz red čekanja: provjeri aktualne uvjete na Expovoj stranici s cijenama.
Treba li iPhone za objavu iOS aplikacije bez Maca?
Tehnički ne, ali ja ti to odlučno ne preporučujem, a ni Apple: njegova pravila pregleda (guideline 2.1) traže da je aplikacija prije slanja testirana na uređaju zbog bugova i stabilnosti. Dovoljan je noviji rabljeni iPhone, pod uvjetom da vrti verziju iOS-a koju podržava tvoja verzija Expo SDK-a.
Kako testirati iOS aplikaciju bez Maca?
Instaliraj aplikaciju Expo Go na iPhone: ona čita QR kod prikazan u terminalu i učitava tvoj projekt, a svaka izmjena vidi se za nekoliko sekundi. Expo Go sadrži samo nativne module koje daje Expo. Čim tvoja aplikacija koristi nativnu biblioteku koje tamo nema, poput RevenueCatova SDK-a, treba ti development build kompajliran preko EAS Builda. Za testiranje konačnog builda pročitaj TestFlight za testiranje aplikacije.
Koja su ograničenja iOS razvoja bez Maca?
Ne možeš koristiti lokalni iOS simulator: dio je Xcodea, pa ne radi na Windowsu. Lokalni EAS buildovi (--local) nisu podržani na Windowsu: tvoji iOS buildovi idu kroz Expov cloud. Debugiranje nativnog koda i ručno pisanje nativnih ekstenzija i dalje su mogući, ali teži, jer su Appleovi alati u Xcodeu.