Udgiv iOS-app uden Mac: guide til Expo og EAS
Af Mehdi Azizi
Opdateret , 9 min.
Fra en Windows-pc kan Expo og EAS bygge din iOS-app og sende den til Apple. Her er, hvad der virker uden Mac, hvad der driller, og hvorfor du skal bruge en iPhone.
Kan man udgive en iOS-app uden Mac?
Ja. Du kan udgive en iOS-app uden Mac, hvis du bygger den med Expo og React Native. EAS Build kompilerer din app på Mac-maskiner, som Expo hoster i skyen, og EAS Submit sender den derefter til App Store Connect. Expos dokumentation siger det klart: EAS Submit virker på macOS, Linux og Windows, så du behøver ikke en Mac for at levere et iOS-build.
Til gengæld skal du bruge tre ting, som intet kan erstatte: en betalt Apple Developer-konto, en iPhone til at teste din app i virkeligheden og en browser til at udfylde app-siden i App Store Connect. Resten af guiden gennemgår, hvad der virker fra en Windows-pc, hvad der driller, og i hvilken rækkefølge du gør tingene.
Alle mine iOS-apps går gennem den samme kæde: Expo, EAS Build og så EAS Submit. Solys og TradaZen er kommet på App Store på den måde. Jeg arbejder selv på Mac, men intet trin i udgivelsen afhænger af det: builds laves i Expos sky, og afsendelsen til Apple sker fra kommandolinjen.
Sådan erstatter Expo og EAS din Mac
For at forstå, hvad der er muligt, skal du vide, hvorfor en Mac før var påkrævet. En iOS-app skal kompileres med Xcode, Apples værktøj, som kun kører på macOS, og i en version, der er ny nok til at undgå afvisningen ITMS-90725. Derefter skal den signeres med et certifikat knyttet til din udviklerkonto og sendes til App Store Connect.
Expo deler arbejdet op i tre værktøjer:
- Expo og React Native: du skriver din app i JavaScript eller TypeScript på en hvilken som helst computer.
- EAS Build: du kører kommandoen fra din pc, koden sendes til en af Expos Mac-maskiner, som kompilerer og signerer appen for dig. Du får en fil, der er klar til at blive installeret eller sendt afsted.
- EAS Submit: den tager dit build og sender det til App Store Connect. Når Apple har behandlet det og blandt andet tjekket ikonet (ITMS-90717), dukker det op i TestFlight.
Der er stadig en Mac i kæden. Det er bare ikke din. Hvis du vil forstå, hvorfor jeg anbefaler denne stack til begyndere, så læs siden om React Native og Expo til en mobilapp.
Det kan du gøre fra en Windows-pc
Kode appen
Al udvikling foregår på Windows uden begrænsninger: din editor (VS Code, Cursor), Node.js, terminalen. Hvis du koder med hjælp fra Claude eller ChatGPT, ændrer det heller ikke noget. Læs mere i lav en iOS-app med AI.
Se din app på din iPhone, mens du koder
Til at starte med kan appen Expo Go, installeret på din iPhone, scanne en QR-kode i din terminal og indlæse dit projekt. Hver ændring vises på telefonen på få sekunder. Det er perfekt til de første skærme. Siden maj 2026 er App Store-versionen af Expo Go blevet på SDK 54: opret dit projekt, så det er kompatibelt med den, eller brug eas go og TestFlight til et nyere SDK.
Expo Go har en begrænsning: den indeholder kun de native moduler, som Expo leverer. Så snart din app bruger et native bibliotek, der ikke er med, som RevenueCats SDK til abonnementer, skal du bruge et development build: din egen version af appen, kompileret af EAS Build, som du installerer på din iPhone.
Installér et build på din iPhone uden om App Store
EAS tilbyder intern distribution. Du registrerer din iPhone med kommandoen eas device:create og kører så et build med distributionen internal. Du får et installationslink. Apple begrænser metoden: en konto kan højst distribuere på denne måde til 100 iPhones om året, og hver ny enhed kræver et nyt build eller en ny signering. Til dig selv og et par venner er det rigeligt.
Håndtér certifikater uden Xcode
Signering er det, der stopper flest begyndere på Mac, helt frem til fejlen ITMS-90034 ved afsendelse. Med EAS logger du ind på din Apple-konto fra kommandolinjen, og værktøjet kan selv generere distributionscertifikatet og provisioning-profilen. Du åbner aldrig Nøglering.
Send din app til Apple og udgiv den
eas submit --platform ios sender dit build til App Store Connect. Du kan også køre begge trin i ét med indstillingen --auto-submit til eas build. Resten foregår i browseren: App Store-siden, skærmbillederne, privatlivsoplysningerne, abonnementerne, TestFlight og indsendelsen til gennemgang. App Store Connect er en webapp, og den virker fint på Windows.
Det kan du ikke (eller kun med besvær) uden Mac
iOS-simulatoren lokalt
iOS-simulatoren er en del af Xcode, så den kører ikke på Windows. I praksis gør det ikke så meget: din iPhone er bedre end simulatoren til at teste. Expo annoncerede i september 2026 en iOS-simulator i skyen, EAS Simulator, som stadig har begrænset adgang, mens jeg skriver dette. Byg ikke din arbejdsgang op om den, før den er åben for alle.
Debugge native kode
Hvis et crash skyldes native kode (Swift, Objective-C, et forkert konfigureret bibliotek), ligger Apples diagnoseværktøjer i Xcode. Uden Mac er du afhængig af EAS' build-logs og et værktøj som Sentry, der rapporterer crashes fra den installerede app. Det kan lade sig gøre, men det går langsommere. Derfor giver det mening til en første app at holde sig til Expo-kompatible biblioteker, der bliver vedligeholdt. Det undgår også en afvisning med ITMS-90338 ved afsendelse.
Skrive native udvidelser i hånden
Widgets, notifikationsudvidelser, særlige native targets: det kan lade sig gøre med Expo takket være config plugins, men uden Xcode til at inspicere det genererede projekt koster hver fejl et build mere. Til en første app bør du gemme de funktioner til senere.
Kompilere lokalt
Lokale EAS-builds (indstillingen --local) understøttes ikke på Windows. På pc går dine iOS-builds derfor gennem Expos sky. EAS' gratis plan indeholder et begrænset antal builds om måneden med kø: tjek de aktuelle vilkår på Expos prisside, før du planlægger en intens arbejdsuge.
Apple Developer-kontoen: påkrævet, uden undtagelse
Intet trick kommer uden om det her, heller ikke Apple Developer Enterprise Program, som er forbeholdt interne apps i store organisationer. Uden medlemskab af Apple Developer Program får du ingen App Store Connect, ingen TestFlight, ingen intern distribution og ingen indsendelse til App Store. Medlemskabet koster 99 dollars om året, trukket i din egen valuta.
To råd, før du tilmelder dig:
- Vælg med omtanke mellem individuel konto og organisation. Med en individuel konto er det dit navn, der står som sælger på App Store. Med en organisation er det navnet på din virksomhed, men så kræver Apple et D-U-N-S-nummer og en længere verificering.
- Regn med et par dage. Godkendelsen af kontoen sker ikke altid med det samme. Tilmeld dig, så snart du ved, at du vil udgive, ikke dagen før du sender appen ind.
Hvorfor du reelt har brug for en iPhone til at teste
Teknisk set kan man udgive en iOS-app uden nogensinde at have holdt den i hånden. Det fraråder jeg kraftigt, og det gør Apple også: deres retningslinjer for gennemgang (guideline 2.1) kræver, at appen er testet på en enhed for fejl og stabilitet før indsendelse. Dine brugere har jo kun det: en rigtig iPhone.
Det her viser kun en rigtig iPhone dig:
- Den reelle første opstart uden udviklingsserver: det er her, crashes ved opstart gemmer sig.
- In-app-køb i testmiljøet, så du kan tjekke, at din paywall viser de rigtige priser, og at abonnementet faktisk låser appen op.
- Notifikationer, kamera, vibrationer og tilladelser, som opfører sig anderledes eller slet ikke virker andre steder.
- Det reelle layout: notch eller Dynamic Island, hjemmebjælken, tastaturet der dækker et felt.
- Flydende ydeevne, som en kraftig computer ofte skjuler.
En nyere brugt iPhone er nok, så længe den kører en iOS-version, som din version af Expo SDK understøtter. Og hvis du kan, så lån også en iPhone i en anden størrelse: en app, der fungerer på en stor skærm, kan blive skåret af på en lille. Det var præcis det, der gav mig en afvisning på Solys, som jeg fortæller om i hvorfor Apple afviser en app.
Uden Mac kan det lade sig gøre. Uden iPhone sender du Apple en app, du aldrig har set virke.
Trinene i rækkefølge fra Windows
- Opret dit projekt med
npx create-expo-appog test dine første skærme med Expo Go. - Installér EAS CLI med
npm install -g eas-cli, og kør såeas loginogeas build:configure. - Tilmeld dig Apple Developer Program, så snart dit projekt tager form.
- Registrér din iPhone med
eas device:createog kør et development build. - Opret din app i App Store Connect med samme bundle identifier som i din Expo-konfiguration.
- Kør production-buildet med
eas build --platform ios. - Send det afsted med
eas submit --platform ios, og test det derefter i TestFlight. Guiden TestFlight til at teste din app gennemgår det trin. - Udfyld app-siden og send til gennemgang fra browseren. Den promoverende tekst kan du bagefter ændre uden en ny version.
Tre faldgruber dukker ofte op her. Build-nummeret skal stige ved hver indsendelse: slå EAS' automatiske optælling til, så du ikke skal tænke på det. Spørgsmålet om kryptering blokerer hvert build, indtil du har svaret: du kan angive det én gang for alle i appens konfiguration. Og bundle identifier skal være den samme overalt, ellers kan EAS Submit ikke finde din app. Til resten, fra app-siden til godkendelsen, gennemgår siden udgiv en app på App Store hvert trin.
Udgiv din første app uden Mac, og uden at fare vild
Mac'en er ikke længere den reelle forhindring. De reelle forhindringer ligger andre steder: at vælge en app, der har en chance for at tjene penge, at sætte abonnementer op, der virker, og at forberede en indsendelse, som Apple godkender. Det er det, forløbet i fire trin i iOS Kit dækker, i dit eget tempo. Til selve indsendelsen samler Apple Review Kit min tjekliste før afsendelse og noterne til testeren. Forsiden viser, hvordan du kan lave en mobilapp uden at starte fra nul med Expo og Claude Code, med eller uden Mac.
Den endelige beslutning om at udgive din app ligger hos Apple, og intet kit kan garantere den. Det, jeg kan give dig, er den metode, jeg bruger på mine egne apps.
Ofte stillede spørgsmål
Hvordan udgiver man en iOS-app uden Mac?
Med Expo og React Native erstatter en Mac, som Expo hoster, din egen. Du koder på en hvilken som helst computer, EAS Build kompilerer og signerer appen i skyen, og EAS Submit sender den til App Store Connect. Du skal også bruge en betalt Apple Developer-konto, en browser til at udfylde app-siden og en iPhone til at teste din app i virkeligheden.
Hvad er trinene for at udgive en iOS-app fra Windows?
Opret dit projekt med Expo, installér EAS CLI og tilmeld dig Apple Developer Program. Registrér din iPhone, kør et development build, og opret så din app i App Store Connect med samme bundle identifier som i din Expo-konfiguration. Kør derefter production-buildet, send det med EAS Submit og test det i TestFlight, og udfyld til sidst app-siden og send appen til gennemgang fra browseren.
Hvad koster det at udgive en app på App Store?
Medlemskab af Apple Developer Program koster 99 dollars om året, trukket i din egen valuta. Det er påkrævet: uden det får du ingen App Store Connect, ingen TestFlight, ingen intern distribution og ingen indsendelse til App Store. Hos Expo indeholder EAS' gratis plan et begrænset antal builds om måneden med kø: tjek de aktuelle vilkår på Expos prisside.
Skal man have en iPhone for at udgive en iOS-app uden Mac?
Teknisk set nej, men jeg fraråder det kraftigt, og det gør Apple også: deres retningslinjer for gennemgang (guideline 2.1) kræver, at appen er testet på en enhed for fejl og stabilitet før indsendelse. En nyere brugt iPhone er nok, så længe den kører en iOS-version, som din version af Expo SDK understøtter.
Hvordan tester man sin iOS-app uden Mac?
Installér appen Expo Go på din iPhone: den scanner en QR-kode i din terminal og indlæser dit projekt, og hver ændring vises på få sekunder. Expo Go indeholder kun de native moduler, som Expo leverer. Så snart din app bruger et native bibliotek, der ikke er med, som RevenueCats SDK, skal du bruge et development build kompileret af EAS Build. Til at teste det endelige build kan du læse TestFlight til at teste din app.
Hvad er begrænsningerne ved iOS-udvikling uden Mac?
Du kan ikke bruge iOS-simulatoren lokalt: den er en del af Xcode, så den kører ikke på Windows. Lokale EAS-builds (--local) understøttes ikke på Windows: dine iOS-builds går gennem Expos sky. Det er stadig muligt at debugge native kode og skrive native udvidelser i hånden, men det er sværere, fordi Apples værktøjer ligger i Xcode.