iOS-app publiceren zonder Mac: gids met Expo en EAS
Door Mehdi Azizi
Bijgewerkt op , 9 min
Vanaf een Windows-pc bouwen Expo en EAS je iOS-app en sturen ze hem naar Apple. Wat werkt zonder Mac, wat niet, en waarom je een iPhone nodig hebt.
Kun je een iOS-app publiceren zonder Mac?
Ja. Je kunt een iOS-app publiceren zonder Mac als je hem bouwt met Expo en React Native. EAS Build compileert je app op Macs die Expo in de cloud host, en EAS Submit stuurt hem daarna naar App Store Connect. De documentatie van Expo zegt het duidelijk: EAS Submit werkt op macOS, Linux en Windows, je hebt dus geen Mac nodig om een iOS-build af te leveren.
Wel heb je drie dingen nodig die niets kan vervangen: een betaald Apple Developer-account, een iPhone om je app echt te testen, en een browser om je pagina in App Store Connect in te vullen. De rest van deze gids legt uit wat werkt vanaf een Windows-pc, waar het knelt, en in welke volgorde je de stappen zet.
Al mijn iOS-apps lopen via deze keten: Expo, EAS Build en dan EAS Submit. Solys en TradaZen staan zo in de App Store. Ik werk op een Mac, maar geen enkele stap van het publiceren hangt ervan af: de builds gebeuren in de cloud van Expo en het versturen naar Apple gaat via de command line.
Hoe Expo en EAS de Mac vervangen
Om te snappen wat mogelijk is, moet je weten waarom de Mac verplicht was. Een iOS-app moet gecompileerd worden met Xcode, de tool van Apple, die alleen op macOS draait, in een versie die recent genoeg is om de afwijzing ITMS-90725 te voorkomen. Daarna moet hij ondertekend worden met een certificaat dat aan je developer-account gekoppeld is en naar App Store Connect gestuurd worden.
Expo verdeelt dat werk over drie tools:
- Expo en React Native: je schrijft je app in JavaScript of TypeScript, op elke computer.
- EAS Build: je start het commando vanaf je pc, de code gaat naar een Mac van Expo, die de app voor je compileert en ondertekent. Je krijgt een bestand terug dat klaar is om te installeren of te versturen.
- EAS Submit: pakt die build en stuurt hem naar App Store Connect. Na de verwerking door Apple, die bijvoorbeeld het icoon controleert (ITMS-90717), verschijnt hij in TestFlight.
De Mac zit nog steeds in de keten. Alleen is het niet meer de jouwe. Wil je weten waarom ik deze stack aan beginners aanraad, lees dan de pagina React Native en Expo voor een mobiele app.
Wat kan vanaf een Windows-pc
De app coderen
Alle ontwikkeling gaat zonder beperkingen op Windows: je editor (VS Code, Cursor), Node.js, de terminal. Codeer je met hulp van Claude of ChatGPT, dan verandert er ook niets. Lees daarover een iOS-app maken met AI.
Je app op je iPhone zien terwijl je codeert
Om te beginnen leest de app Expo Go op je iPhone een QR-code in je terminal en laadt je project. Elke wijziging staat binnen een paar seconden op je telefoon. Ideaal voor de eerste schermen. Sinds mei 2026 blijft de App Store-versie van Expo Go op SDK 54: kies bij het aanmaken van je project voor compatibiliteit daarmee, of gebruik eas go en TestFlight voor een nieuwere SDK.
Expo Go heeft een beperking: het bevat alleen de native modules die Expo meelevert. Zodra je app een native library gebruikt die er niet in zit, zoals de SDK van RevenueCat voor abonnementen, heb je een development build nodig: een eigen versie van je app, gecompileerd door EAS Build, die je op je iPhone installeert.
Een build op je iPhone installeren zonder de App Store
EAS biedt interne distributie. Je registreert je iPhone met het commando eas device:create en start een build met de distributie internal. Je krijgt een installatielink. Apple beperkt deze methode: een account kan zo naar maximaal 100 iPhones per jaar distribueren, en elk nieuw toestel vraagt om een nieuwe build of een nieuwe ondertekening. Voor jezelf en een paar mensen om je heen is dat ruim genoeg.
Certificaten beheren zonder Xcode
Ondertekenen is waar de meeste beginners op een Mac vastlopen, tot aan de fout ITMS-90034 bij het versturen. Met EAS log je via de command line in op je Apple-account, en de tool kan zelf het distributiecertificaat en het provisioning profile aanmaken. Je opent Sleutelhangertoegang nooit.
Je app naar Apple sturen en publiceren
eas submit --platform ios stuurt je build naar App Store Connect. Je kunt de twee stappen ook combineren met de optie --auto-submit van eas build. Al de rest gebeurt in de browser: de App Store-pagina, de screenshots, de privacyverklaringen, de abonnementen, TestFlight en het indienen voor review. App Store Connect is een webapp en werkt prima op Windows.
Wat niet kan (of lastiger is) zonder Mac
De iOS-simulator lokaal
De iOS-simulator hoort bij Xcode, dus hij draait niet op Windows. In de praktijk is dat niet erg: je iPhone test beter dan de simulator. Expo kondigde in september 2026 een iOS-simulator in de cloud aan, EAS Simulator, op het moment dat ik dit schrijf nog met beperkte toegang. Bouw je werkwijze er niet op zolang hij niet voor iedereen open is.
Native code debuggen
Komt een crash uit native code (Swift, Objective-C, een slecht geconfigureerde library), dan zitten de diagnosetools van Apple in Xcode. Zonder Mac ben je afhankelijk van de buildlogs van EAS en een tool als Sentry, die crashes van de geïnstalleerde app doorgeeft. Het kan, maar het is trager. Blijf daarom bij een eerste app bij libraries die compatibel zijn met Expo en onderhouden worden. Zo voorkom je ook een afwijzing ITMS-90338 bij het versturen.
Native extensies met de hand schrijven
Widgets, notificatie-extensies, specifieke native targets: met Expo kan het dankzij config plugins, maar zonder Xcode om het gegenereerde project te inspecteren kost elke fout een extra build. Bewaar die functies voor later bij een eerste app.
Lokaal compileren
Lokale builds van EAS (optie --local) worden niet ondersteund op Windows. Op een pc lopen je iOS-builds dus via de cloud van Expo. Het gratis abonnement van EAS bevat een beperkt aantal builds per maand, met een wachtrij: check de actuele voorwaarden op de prijspagina van Expo voordat je een intensieve werkweek plant.
Het Apple Developer-account: verplicht, zonder uitzondering
Geen enkele truc omzeilt dit, zelfs het Apple Developer Enterprise Program niet, dat bedoeld is voor interne apps van grote organisaties. Zonder lidmaatschap van het Apple Developer Program geen App Store Connect, geen TestFlight, geen interne distributie en geen inzending naar de App Store. Het lidmaatschap kost 99 $ per jaar, afgeschreven in je eigen valuta.
Twee tips voordat je je inschrijft:
- Kies goed tussen een individueel account en een organisatie. Als individu staat jouw naam als verkoper in de App Store. Als organisatie is dat de naam van je bedrijf, maar dan vraagt Apple een D-U-N-S-nummer en een langere verificatie.
- Reken op een paar dagen. De validatie van het account gaat niet altijd meteen. Schrijf je in zodra je weet dat je gaat publiceren, niet de dag voor het versturen.
Waarom je echt een iPhone nodig hebt om te testen
Technisch kun je een iOS-app publiceren zonder hem ooit in je hand te hebben gehad. Ik raad het je sterk af, en Apple ook: de reviewregels (guideline 2.1) vragen dat de app vóór het versturen op een toestel getest is op bugs en stabiliteit. Je gebruikers hebben alleen dat: een echte iPhone.
Dit laat alleen een echte iPhone je zien:
- De echte eerste start, zonder development server: daar zitten de crashes bij het opstarten verstopt.
- In-app aankopen in de testomgeving, om te checken dat je paywall de juiste prijzen toont en dat het abonnement de app echt ontgrendelt.
- Notificaties, camera, trillingen, permissies, die zich elders anders of helemaal niet gedragen.
- De echte lay-out: de notch of het Dynamic Island, de thuisbalk, het toetsenbord dat een invoerveld bedekt.
- De vloeiendheid, die een krachtige computer vaak verbergt.
Een recente tweedehands iPhone volstaat, zolang hij een iOS-versie draait die je versie van de Expo SDK ondersteunt. En als het kan, leen ook een iPhone met een ander formaat: een app die op een groot scherm past, kan op een klein scherm afgesneden worden. Precies dat leverde me een afwijzing op voor Solys, zoals ik vertel in waarom Apple een app afwijst.
Zonder Mac kan het. Zonder iPhone stuur je Apple een app die je nooit hebt zien werken.
De stappen op volgorde, vanaf Windows
- Maak je project aan met
npx create-expo-appen test je eerste schermen met Expo Go. - Installeer EAS CLI met
npm install -g eas-cli, daarnaeas logineneas build:configure. - Schrijf je in voor het Apple Developer Program zodra je project vorm krijgt.
- Registreer je iPhone met
eas device:createen start een development build. - Maak je app-pagina aan in App Store Connect, met dezelfde bundle identifier als in je Expo-configuratie.
- Start de productiebuild met
eas build --platform ios. - Verstuur hem met
eas submit --platform iosen test hem in TestFlight. De gids TestFlight om je app te testen legt deze stap uit. - Vul de pagina in en dien in voor review vanuit de browser. De promotietekst kun je daarna aanpassen zonder nieuwe versie.
Drie valkuilen komen in deze fase vaak terug. Het buildnummer moet bij elke inzending omhoog: zet de automatische ophoging van EAS aan, dan hoef je er niet meer aan te denken. De vraag over encryptie blokkeert elke build zolang je hem niet beantwoord hebt: je kunt hem in één keer vastleggen in de configuratie van de app. En de bundle identifier moet overal identiek zijn, anders vindt EAS Submit je app niet. Voor het vervolg, van de pagina tot de goedkeuring, behandelt de pagina een app publiceren in de App Store elke stap.
Je eerste app publiceren, zonder Mac en zonder te verdwalen
De Mac is niet meer het echte obstakel. De echte obstakels liggen ergens anders: een app kiezen die kans maakt om geld op te leveren, abonnementen inbouwen die werken, een dossier voorbereiden dat Apple accepteert. Dat is wat het traject in vier stappen van de iOS Kit behandelt, in je eigen tempo. Voor het dossier bundelt de Apple Review Kit mijn checklist voor het versturen en de notities voor de tester. De homepage laat zien hoe je een mobiele app maakt zonder vanaf nul te beginnen met Expo en Claude Code, met of zonder Mac.
De uiteindelijke beslissing om je app te publiceren ligt bij Apple, en geen enkele kit kan die garanderen. Wat ik je kan geven, is de methode die ik op mijn eigen apps toepas.
Veelgestelde vragen
Hoe publiceer je een iOS-app zonder Mac?
Met Expo en React Native vervangt een Mac die Expo host de jouwe. Je codeert op elke computer, EAS Build compileert en ondertekent de app in de cloud, en EAS Submit stuurt hem naar App Store Connect. Je hebt ook een betaald Apple Developer-account nodig, een browser om de pagina in te vullen en een iPhone om je app echt te testen.
Wat zijn de stappen om een iOS-app vanaf Windows te publiceren?
Maak je project aan met Expo, installeer EAS CLI en schrijf je in voor het Apple Developer Program. Registreer je iPhone, start een development build en maak je App Store Connect-pagina aan met dezelfde bundle identifier als in je Expo-configuratie. Start daarna de productiebuild, verstuur hem met EAS Submit en test hem in TestFlight. Vul tot slot de pagina in en dien de app in voor review vanuit de browser.
Wat kost het om een app in de App Store te publiceren?
Het lidmaatschap van het Apple Developer Program kost 99 $ per jaar, afgeschreven in je eigen valuta. Het is verplicht: zonder lidmaatschap geen App Store Connect, geen TestFlight, geen interne distributie en geen inzending naar de App Store. Bij Expo bevat het gratis abonnement van EAS een beperkt aantal builds per maand, met een wachtrij: check de actuele voorwaarden op de prijspagina van Expo.
Heb je een iPhone nodig om een iOS-app zonder Mac te publiceren?
Technisch niet, maar ik raad het je sterk af, en Apple ook: de reviewregels (guideline 2.1) vragen dat de app vóór het versturen op een toestel getest is op bugs en stabiliteit. Een recente tweedehands iPhone volstaat, zolang hij een iOS-versie draait die je versie van de Expo SDK ondersteunt.
Hoe test je je iOS-app zonder Mac?
Installeer de app Expo Go op je iPhone: die leest een QR-code in je terminal en laadt je project, met elke wijziging binnen een paar seconden zichtbaar. Expo Go bevat alleen de native modules die Expo meelevert. Zodra je app een native library gebruikt die er niet in zit, zoals de SDK van RevenueCat, heb je een development build nodig, gecompileerd door EAS Build. Om de definitieve build te testen, lees TestFlight om je app te testen.
Wat zijn de beperkingen van iOS-ontwikkeling zonder Mac?
Je kunt de iOS-simulator niet lokaal gebruiken: hij hoort bij Xcode en draait dus niet op Windows. Lokale builds van EAS (--local) worden niet ondersteund op Windows: je iOS-builds lopen via de cloud van Expo. Native code debuggen en native extensies met de hand schrijven blijft mogelijk, maar is lastiger, omdat de tools van Apple in Xcode zitten.