Publisere iOS-app uten Mac: guide til Expo og EAS
Av Mehdi Azizi
Oppdatert , 9 min
Fra en Windows-PC kan Expo og EAS bygge iOS-appen din og sende den til Apple. Her er hva som funker uten Mac, hva som stopper, og hvorfor du trenger en iPhone.
Kan man publisere en iOS-app uten Mac?
Ja. Du kan publisere en iOS-app uten Mac hvis du bygger den med Expo og React Native. EAS Build kompilerer appen din på Mac-maskiner som Expo drifter i skyen, og EAS Submit sender den deretter til App Store Connect. Expo-dokumentasjonen sier det rett ut: EAS Submit fungerer på macOS, Linux og Windows, så du trenger ikke en Mac for å levere et iOS-bygg.
Du trenger derimot tre ting som ingenting kan erstatte: en betalt Apple Developer-konto, en iPhone for å teste appen ordentlig, og en nettleser for å fylle ut appsiden i App Store Connect. Resten av guiden går gjennom hva som funker fra en Windows-PC, hva som stopper opp, og hvilken rekkefølge stegene kommer i.
Alle iOS-appene mine går gjennom denne kjeden: Expo, EAS Build og så EAS Submit. Solys og TradaZen ligger på App Store på denne måten. Jeg jobber på Mac, men ingen av publiseringsstegene er avhengige av den: byggene skjer i Expos sky, og innsendingen til Apple går via kommandolinjen.
Slik erstatter Expo og EAS Mac-en
For å forstå hva som er mulig, må du vite hvorfor Mac-en var obligatorisk. En iOS-app må kompileres med Xcode, Apples verktøy, som bare kjører på macOS, og i en ny nok versjon til å unngå avvisningen ITMS-90725. Deretter må den signeres med et sertifikat knyttet til utviklerkontoen din, og så sendes til App Store Connect.
Expo deler denne jobben opp i tre verktøy:
- Expo og React Native: du skriver appen i JavaScript eller TypeScript, på hvilken som helst datamaskin.
- EAS Build: du kjører kommandoen fra PC-en din, koden sendes til en Mac hos Expo, som kompilerer og signerer appen for deg. Du får tilbake en fil som er klar til å installeres eller sendes inn.
- EAS Submit: tar bygget og sender det til App Store Connect. Etter at Apple har behandlet det, og for eksempel sjekket ikonet (ITMS-90717), dukker det opp i TestFlight.
Mac-en finnes fortsatt i kjeden. Det er bare ikke din lenger. Vil du forstå hvorfor jeg anbefaler denne stacken til nybegynnere, kan du lese siden om React Native og Expo for en mobilapp.
Dette kan du gjøre fra en Windows-PC
Kode appen
All utvikling skjer på Windows uten begrensninger: editoren din (VS Code, Cursor), Node.js, terminalen. Koder du med hjelp fra Claude eller ChatGPT, endrer ikke det noe heller. Les mer om det i lag en iOS-app med AI.
Se appen på iPhonen mens du koder
For å komme i gang leser Expo Go-appen, installert på iPhonen din, en QR-kode som vises i terminalen, og laster prosjektet ditt. Hver endring dukker opp på telefonen i løpet av noen sekunder. Perfekt for de første skjermene. Siden mai 2026 blir App Store-versjonen av Expo Go værende på SDK 54: opprett prosjektet ditt med kompatibilitet for den, eller bruk eas go og TestFlight for en nyere SDK.
Expo Go har en begrensning: den inneholder bare de native modulene Expo leverer. Så snart appen din bruker et native bibliotek som ikke er med, som RevenueCats SDK for abonnementer, trenger du et utviklingsbygg: en egen versjon av appen din, kompilert av EAS Build, som du installerer på iPhonen.
Installere et bygg på iPhonen uten å gå via App Store
EAS tilbyr intern distribusjon. Du registrerer iPhonen med kommandoen eas device:create, og kjører så et bygg med distribusjonen internal. Du får en installasjonslenke. Apple begrenser denne metoden: en konto kan distribuere slik til maks 100 iPhoner per år, og hver ny enhet krever et nytt bygg eller en ny signering. For deg selv og noen få nære er det mer enn nok.
Håndtere sertifikater uten Xcode
Signering er det som stopper flest nybegynnere på Mac, helt frem til feilen ITMS-90034 ved innsending. Med EAS logger du inn på Apple-kontoen din fra kommandolinjen, og verktøyet kan selv generere distribusjonssertifikatet og provisioning-profilen. Du åpner aldri nøkkelringen.
Sende appen til Apple og publisere den
eas submit --platform ios sender bygget ditt til App Store Connect. Du kan også kjøre begge stegene etter hverandre med valget --auto-submit på eas build. Alt annet skjer i nettleseren: App Store-siden, skjermbildene, personvernerklæringene, abonnementene, TestFlight og innsendingen til gjennomgang. App Store Connect er en nettapp, og den fungerer helt fint på Windows.
Dette går ikke (eller er vanskeligere) uten Mac
iOS-simulatoren lokalt
iOS-simulatoren er en del av Xcode, så den kjører ikke på Windows. I praksis gjør det ikke så mye: iPhonen din er bedre enn simulatoren til testing. Expo annonserte i september 2026 en iOS-simulator i skyen, EAS Simulator, som fortsatt har begrenset tilgang når jeg skriver dette. Ikke bygg arbeidsflyten din rundt den før den er åpen for alle.
Feilsøke native kode
Hvis en krasj kommer fra native kode (Swift, Objective-C, et feilkonfigurert bibliotek), ligger Apples diagnoseverktøy i Xcode. Uten Mac er du avhengig av byggloggene i EAS og et verktøy som Sentry, som rapporterer krasjer fra den installerte appen. Det går, men det er tregere. Derfor lønner det seg, for en første app, å holde seg til vedlikeholdte bibliotek som er kompatible med Expo, noe som også hindrer en avvisning med ITMS-90338 ved innsending.
Skrive native utvidelser for hånd
Widgets, varslingsutvidelser, spesifikke native targets: det går med Expo takket være config-plugins, men uten Xcode til å inspisere det genererte prosjektet koster hver feil ett bygg til. For en første app bør du spare disse funksjonene til senere.
Kompilere lokalt
Lokale bygg i EAS (valget --local) støttes ikke på Windows. På PC går iOS-byggene dine derfor via Expos sky. Gratisplanen til EAS inkluderer et begrenset antall bygg per måned, med kø: sjekk gjeldende vilkår på Expos prisside før du planlegger en intens arbeidsuke.
Apple Developer-kontoen: obligatorisk, uten unntak
Ingen triks kommer rundt dette, ikke engang Apple Developer Enterprise Program, som er forbeholdt interne apper i store organisasjoner. Uten medlemskap i Apple Developer Program får du ikke App Store Connect, ikke TestFlight, ikke intern distribusjon, og ingen innsending til App Store. Medlemskapet koster 99 $ per år, trukket i din valuta.
To råd før du melder deg på:
- Velg nøye mellom individuell konto og organisasjon. Som individuell er det navnet ditt som vises som selger på App Store. Som organisasjon er det navnet på selskapet ditt, men da krever Apple et D-U-N-S-nummer og en lengre verifisering.
- Regn med noen dager. Godkjenningen av kontoen skjer ikke alltid umiddelbart. Meld deg på så snart du vet at du skal publisere, ikke dagen før innsending.
Det reelle behovet for en iPhone til testing
Teknisk sett kan man publisere en iOS-app uten å ha holdt den i hånden. Jeg fraråder det på det sterkeste, og det gjør Apple også: retningslinjene for gjennomgang (guideline 2.1) krever at appen er testet på en enhet, for feil og stabilitet, før innsending. Brukerne dine vil bare ha nettopp det: en ekte iPhone.
Dette er hva bare en ekte iPhone viser deg:
- Den reelle første oppstarten, uten utviklingsserver: det er der krasjene ved oppstart gjemmer seg.
- Kjøp i appen i testmiljø, for å sjekke at paywallen viser riktige priser og at abonnementet faktisk låser opp appen.
- Varsler, kamera, vibrasjon, tillatelser, som oppfører seg annerledes eller ikke i det hele tatt andre steder.
- Den faktiske layouten: hakket eller Dynamic Island, hjemlinjen, tastaturet som dekker et felt.
- Flyten, som en kraftig datamaskin ofte skjuler.
En nyere brukt iPhone holder, så lenge den kjører en iOS-versjon som støttes av din versjon av Expo SDK. Og om du kan, lån også en iPhone med en annen størrelse: en app som ser fin ut på en stor skjerm kan bli kuttet på en liten. Det var nettopp dette som ga meg en avvisning på Solys, som jeg forteller om i hvorfor Apple avviser en app.
Uten Mac går det fint. Uten iPhone sender du Apple en app du aldri har sett fungere.
Stegene, i rekkefølge, fra Windows
- Opprett prosjektet med
npx create-expo-appog test de første skjermene med Expo Go. - Installer EAS CLI med
npm install -g eas-cli, derettereas loginogeas build:configure. - Meld deg på Apple Developer Program så snart prosjektet begynner å ta form.
- Registrer iPhonen med
eas device:createog kjør et utviklingsbygg. - Opprett appsiden i App Store Connect, med samme bundle-ID som i Expo-konfigurasjonen.
- Kjør produksjonsbygget med
eas build --platform ios. - Send det inn med
eas submit --platform ios, og test det i TestFlight. Guiden TestFlight for å teste appen din går gjennom dette steget. - Fyll ut appsiden og send til gjennomgang fra nettleseren. Reklameteksten kan du senere endre uten ny versjon.
Tre feller dukker ofte opp her. Byggnummeret må øke for hver innsending: slå på automatisk inkrementering i EAS så slipper du å tenke på det. Spørsmålet om kryptering blokkerer hvert bygg til du har svart på det: du kan oppgi det én gang for alle i app-konfigurasjonen. Og bundle-ID-en må være identisk overalt, ellers finner ikke EAS Submit appen din. For resten, fra appside til godkjenning, dekker siden publisere en app på App Store hvert steg.
Publiser din første app, uten Mac og uten å gå deg vill
Mac-en er ikke lenger det egentlige hinderet. De egentlige hindrene ligger andre steder: å velge en app som har en sjanse til å tjene penger, å koble på abonnementer som fungerer, og å forberede en innsending Apple godtar. Det er dette firestegsløpet i iOS Kit dekker, i ditt eget tempo. For innsendingen samler Apple Review Kit sjekklisten min før innsending og notatene til testeren. Forsiden viser hvordan du kan lage en mobilapp uten å starte fra null med Expo og Claude Code, med eller uten Mac.
Den endelige avgjørelsen om å publisere appen din ligger hos Apple, og ingen kit kan garantere den. Det jeg kan gi deg, er metoden jeg bruker på mine egne apper.
Ofte stilte spørsmål
Hvordan publiserer jeg en iOS-app uten Mac?
Med Expo og React Native erstatter en Mac driftet av Expo din egen. Du koder på hvilken som helst datamaskin, EAS Build kompilerer og signerer appen i skyen, og EAS Submit sender den til App Store Connect. Du trenger også en betalt Apple Developer-konto, en nettleser for å fylle ut appsiden og en iPhone for å teste appen ordentlig.
Hva er stegene for å publisere en iOS-app fra Windows?
Opprett prosjektet med Expo, installer EAS CLI og meld deg på Apple Developer Program. Registrer iPhonen, kjør et utviklingsbygg, og opprett appsiden i App Store Connect med samme bundle-ID som i Expo-konfigurasjonen. Kjør deretter produksjonsbygget, send det inn med EAS Submit og test det i TestFlight, og fyll så ut appsiden og send appen til gjennomgang fra nettleseren.
Hva koster det å publisere en app på App Store?
Medlemskap i Apple Developer Program koster 99 $ per år, trukket i din valuta. Det er obligatorisk: uten det får du verken App Store Connect, TestFlight, intern distribusjon eller innsending til App Store. Hos Expo inkluderer gratisplanen til EAS et begrenset antall bygg per måned, med kø: sjekk gjeldende vilkår på Expos prisside.
Trenger jeg en iPhone for å publisere en iOS-app uten Mac?
Teknisk sett nei, men jeg fraråder det på det sterkeste, og det gjør Apple også: retningslinjene for gjennomgang (guideline 2.1) krever at appen er testet på en enhet for feil og stabilitet før innsending. En nyere brukt iPhone holder, så lenge den kjører en iOS-versjon som støttes av din versjon av Expo SDK.
Hvordan tester jeg iOS-appen min uten Mac?
Installer Expo Go-appen på iPhonen: den leser en QR-kode som vises i terminalen og laster prosjektet ditt, og hver endring vises i løpet av noen sekunder. Expo Go inneholder bare de native modulene Expo leverer. Så snart appen din bruker et native bibliotek som mangler, som RevenueCats SDK, trenger du et utviklingsbygg kompilert av EAS Build. For å teste det endelige bygget, les TestFlight for å teste appen din.
Hva er begrensningene ved iOS-utvikling uten Mac?
Du kan ikke bruke iOS-simulatoren lokalt: den er en del av Xcode, så den kjører ikke på Windows. Lokale bygg i EAS (--local) støttes ikke på Windows: iOS-byggene dine går via Expos sky. Å feilsøke native kode og skrive native utvidelser for hånd er fortsatt mulig, men vanskeligere, fordi Apples verktøy ligger i Xcode.