iOS-sovelluksen julkaisu ilman Macia: Expo ja EAS
Kirjoittaja: Mehdi Azizi
Päivitetty , 9 min
Windows-PC:llä Expo ja EAS kääntävät iOS-sovelluksesi ja lähettävät sen Applelle. Mikä toimii ilman Macia, mikä ei, ja miksi tarvitset iPhonen.
Voiko iOS-sovelluksen julkaista ilman Macia?
Kyllä. Voit julkaista iOS-sovelluksen ilman Macia, jos rakennat sen Expolla ja React Nativella. EAS Build kääntää sovelluksesi Expon ylläpitämillä Maceilla pilvessä, ja EAS Submit lähettää sen sen jälkeen App Store Connectiin. Expon dokumentaatio sanoo sen suoraan: EAS Submit toimii macOS:llä, Linuxilla ja Windowsilla, joten et tarvitse Macia iOS-buildin toimittamiseen.
Sen sijaan tarvitset kolme asiaa, joita mikään ei korvaa: maksullisen Apple Developer -tilin, iPhonen sovelluksen oikeaan testaamiseen ja selaimen, jolla täytät sovelluksen tiedot App Store Connectissa. Loput tästä oppaasta kertoo, mikä toimii Windows-PC:llä, mikä takkuaa ja missä järjestyksessä vaiheet tehdään.
Kaikki iOS-sovellukseni kulkevat tämän ketjun läpi: Expo, EAS Build ja sitten EAS Submit. Solys ja TradaZen ovat App Storessa juuri näin. Teen itse töitä Macilla, mutta mikään julkaisun vaihe ei riipu siitä: buildit tehdään Expon pilvessä ja lähetys Applelle hoituu komentoriviltä.
Miten Expo ja EAS korvaavat Macin
Jotta ymmärrät, mikä on mahdollista, pitää tietää, miksi Mac oli ennen pakollinen. iOS-sovellus täytyy kääntää Applen Xcodella, joka toimii vain macOS:llä, ja riittävän tuoreella versiolla, jotta vältät hylkäyksen ITMS-90725. Sen jälkeen sovellus pitää allekirjoittaa kehittäjätiliisi sidotulla varmenteella ja lähettää App Store Connectiin.
Expo jakaa tämän työn kolmeen työkaluun:
- Expo ja React Native: kirjoitat sovelluksesi JavaScriptillä tai TypeScriptillä millä tahansa tietokoneella.
- EAS Build: ajat komennon PC:ltäsi, koodi lähtee Expon Macille, joka kääntää ja allekirjoittaa sovelluksen puolestasi. Saat takaisin tiedoston, joka on valmis asennettavaksi tai lähetettäväksi.
- EAS Submit: ottaa tämän buildin ja lähettää sen App Store Connectiin. Kun Apple on käsitellyt sen ja tarkistanut esimerkiksi kuvakkeen (ITMS-90717), se näkyy TestFlightissa.
Mac on edelleen ketjussa. Se ei vain ole enää sinun. Jos haluat tietää, miksi suosittelen tätä stackia aloittelijoille, lue sivu React Native ja Expo mobiilisovellukseen.
Mikä onnistuu Windows-PC:llä
Sovelluksen koodaaminen
Koko kehitystyö onnistuu Windowsilla ilman rajoituksia: editorisi (VS Code, Cursor), Node.js ja terminaali. Jos koodaat Clauden tai ChatGPT:n avulla, sekään ei muutu. Aiheesta lisää: iOS-sovelluksen tekeminen tekoälyllä.
Sovelluksen näkeminen iPhonella koodatessa
Alkuun pääset Expo Go -sovelluksella: asennat sen iPhoneen, se lukee terminaalissa näkyvän QR-koodin ja lataa projektisi. Jokainen muutos näkyy puhelimessa muutamassa sekunnissa. Se sopii täydellisesti ensimmäisiin näkymiin. Toukokuusta 2026 alkaen Expo Go:n App Store -versio pysyy SDK 54:ssä: luo projektisi valitsemalla yhteensopivuus sen kanssa tai käytä eas go -komentoa ja TestFlightia uudemmalle SDK:lle.
Expo Go:lla on rajoitus: se sisältää vain Expon tarjoamat natiivimoduulit. Heti kun sovelluksesi käyttää natiivikirjastoa, jota siinä ei ole, kuten RevenueCatin SDK:ta tilauksiin, tarvitset development buildin: oman versiosi sovelluksesta, jonka EAS Build kääntää ja jonka asennat iPhoneesi.
Buildin asentaminen iPhoneen ilman App Storea
EAS tarjoaa sisäisen jakelun. Rekisteröit iPhonesi komennolla eas device:create ja käynnistät buildin internal-jakelulla. Saat asennuslinkin. Apple rajoittaa tätä tapaa: yksi tili voi jakaa näin enintään 100 iPhoneen vuodessa, ja jokainen uusi laite vaatii uuden buildin tai uuden allekirjoituksen. Itsellesi ja muutamalle läheiselle se riittää hyvin.
Varmenteiden hallinta ilman Xcodea
Allekirjoitus kaataa Macillakin eniten aloittelijoita, aina lähetyksessä tulevaan virheeseen ITMS-90034 asti. EAS:llä kirjaudut Apple-tilillesi komentoriviltä, ja työkalu voi itse luoda jakeluvarmenteen ja provisiointiprofiilin. Et avaa koskaan Avainnippua.
Sovelluksen lähettäminen Applelle ja julkaisu
eas submit --platform ios lähettää buildisi App Store Connectiin. Voit myös ketjuttaa molemmat vaiheet eas build -komennon --auto-submit-valinnalla. Kaikki muu tapahtuu selaimessa: App Store -sivu, kuvakaappaukset, tietosuojailmoitukset, tilaukset, TestFlight ja arviointiin lähettäminen. App Store Connect on verkkosovellus, ja se toimii Windowsilla erinomaisesti.
Mikä ei onnistu (tai on vaikeampaa) ilman Macia
Paikallinen iOS-simulaattori
iOS-simulaattori on osa Xcodea, joten se ei toimi Windowsilla. Käytännössä se ei haittaa: iPhonesi on testaukseen simulaattoria parempi. Expo julkisti syyskuussa 2026 pilvessä toimivan iOS-simulaattorin, EAS Simulatorin, joka on tätä kirjoittaessani vielä rajatussa käytössä. Älä rakenna työtapaasi sen varaan ennen kuin se on kaikkien saatavilla.
Natiivikoodin debuggaus
Jos kaatuminen johtuu natiivikoodista (Swift, Objective-C, väärin konfiguroitu kirjasto), Applen diagnostiikkatyökalut ovat Xcodessa. Ilman Macia olet EAS:n build-lokien ja Sentryn kaltaisen työkalun varassa, joka raportoi asennetun sovelluksen kaatumiset. Se onnistuu, mutta hitaammin. Siksi ensimmäisessä sovelluksessa kannattaa pysyä Expo-yhteensopivissa ja ylläpidetyissä kirjastoissa, mikä myös välttää hylkäyksen ITMS-90338 lähetyksessä.
Natiivilaajennusten kirjoittaminen käsin
Widgetit, ilmoituslaajennukset, erityiset natiivikohteet: Expolla nekin onnistuvat config pluginien avulla, mutta ilman Xcodea generoidun projektin tutkimiseen jokainen virhe maksaa yhden buildin lisää. Jätä nämä ominaisuudet ensimmäisessä sovelluksessa myöhemmäksi.
Paikallinen kääntäminen
EAS:n paikalliset buildit (--local-valinta) eivät ole tuettuja Windowsilla. PC:llä iOS-buildisi kulkevat siis Expon pilven kautta. EAS:n ilmaisversio sisältää rajallisen määrän buildeja kuukaudessa jonotuksen kera: tarkista nykyiset ehdot Expon hinnastosivulta ennen kuin suunnittelet tiiviin työviikon.
Apple Developer -tili: pakollinen, ilman poikkeuksia
Tätä ei kierrä mikään kikka, ei edes Apple Developer Enterprise Program, joka on varattu suurten organisaatioiden sisäisille sovelluksille. Ilman Apple Developer Program -jäsenyyttä ei ole App Store Connectia, ei TestFlightia, ei sisäistä jakelua eikä lähetystä App Storeen. Jäsenyys maksaa 99 $ vuodessa, ja se veloitetaan omassa valuutassasi.
Kaksi vinkkiä ennen rekisteröitymistä:
- Valitse huolella henkilö- ja organisaatiotilin välillä. Henkilötilillä App Storessa myyjänä näkyy oma nimesi. Organisaatiotilillä näkyy yrityksesi nimi, mutta Apple vaatii silloin D-U-N-S-numeron ja pidemmän tarkistuksen.
- Varaa muutama päivä. Tilin hyväksyntä ei ole aina välitön. Rekisteröidy heti kun tiedät julkaisevasi, älä lähetystä edeltävänä päivänä.
Todellinen tarve iPhonelle testaukseen
Teknisesti iOS-sovelluksen voi julkaista pitämättä sitä koskaan kädessä. Neuvon painokkaasti välttämään sitä, ja niin neuvoo Applekin: sen arviointiohjeet (guideline 2.1) edellyttävät, että sovellus on testattu laitteella bugien ja vakauden osalta ennen lähetystä. Käyttäjilläsi taas on vain se: oikea iPhone.
Tämän näyttää vain oikea iPhone:
- Todellinen ensikäynnistys ilman kehityspalvelinta: juuri siellä piilevät käynnistyksen kaatumiset.
- Sovelluksen sisäiset ostot testiympäristössä, jotta näet, että maksumuurisi näyttää oikeat hinnat ja että tilaus todella avaa sovelluksen.
- Ilmoitukset, kamera, värinät ja käyttöoikeudet, jotka toimivat muualla eri tavalla tai eivät ollenkaan.
- Todellinen asettelu: lovi tai Dynamic Island, kotipalkki, kenttää peittävä näppäimistö.
- Sujuvuus, jonka tehokas tietokone usein peittää.
Tuore käytetty iPhone riittää, kunhan siinä pyörii iOS-versio, jota Expo SDK -versiosi tukee. Ja jos voit, lainaa myös erikokoinen iPhone: sovellus, joka näyttää hyvältä isolla näytöllä, voi leikkautua pienellä. Juuri siitä sain hylkäyksen Solysille, kerron siitä artikkelissa miksi Apple hylkää sovelluksen.
Ilman Macia se onnistuu. Ilman iPhonea lähetät Applelle sovelluksen, jota et ole koskaan nähnyt toimivan.
Vaiheet järjestyksessä Windowsilla
- Luo projektisi komennolla
npx create-expo-appja testaa ensimmäiset näkymät Expo Go:lla. - Asenna EAS CLI komennolla
npm install -g eas-cli, sitteneas loginjaeas build:configure. - Rekisteröidy Apple Developer Programiin heti kun projektisi alkaa muotoutua.
- Rekisteröi iPhonesi komennolla
eas device:createja käynnistä development build. - Luo sovelluksesi tiedot App Store Connectiin samalla bundle-tunnisteella kuin Expo-konfiguraatiossasi.
- Käynnistä tuotantobuild komennolla
eas build --platform ios. - Lähetä se komennolla
eas submit --platform iosja testaa se TestFlightissa. Opas TestFlight sovelluksen testaamiseen käy tämän vaiheen läpi. - Täytä tiedot ja lähetä arviointiin selaimesta. Mainosteksti taas vaihtuu myöhemmin ilman uutta versiota.
Tässä vaiheessa toistuu kolme sudenkuoppaa. Build-numeron täytyy kasvaa jokaisella lähetyksellä: ota EAS:n automaattinen kasvatus käyttöön, niin ei tarvitse muistaa. Salauskysymys pysäyttää jokaisen buildin, kunnes vastaat siihen: voit ilmoittaa sen kerralla sovelluksen konfiguraatiossa. Ja bundle-tunnisteen täytyy olla kaikkialla sama, muuten EAS Submit ei löydä sovellustasi. Jatkosta, sovelluksen tiedoista hyväksyntään, kertoo sivu sovelluksen julkaiseminen App Storessa vaihe vaiheelta.
Julkaise ensimmäinen sovelluksesi ilman Macia ja eksymättä
Mac ei ole enää varsinainen este. Todelliset esteet ovat muualla: valita sovellus, jolla on mahdollisuus tuottaa, kytkeä toimivat tilaukset ja valmistella kokonaisuus, jonka Apple hyväksyy. Sen kattaa iOS Kitin neljän vaiheen polku, jota voit seurata omaan tahtiisi. Arviointia varten Apple Review Kit kokoaa lähetystä edeltävän tarkistuslistani ja muistiinpanot arvioijalle. Etusivulla näet, miten mobiilisovelluksen voi luoda tyhjästä aloittamatta Expolla ja Claude Codella, Macilla tai ilman.
Lopullinen päätös sovelluksesi julkaisusta on Applella, eikä mikään kit voi sitä taata. Sen, minkä voin tarjota, on menetelmä, jota käytän omissa sovelluksissani.
Usein kysytyt kysymykset
Miten iOS-sovelluksen voi julkaista ilman Macia?
Expolla ja React Nativella Expon ylläpitämä Mac korvaa omasi. Koodaat millä tahansa tietokoneella, EAS Build kääntää ja allekirjoittaa sovelluksen pilvessä, ja EAS Submit lähettää sen App Store Connectiin. Tarvitset myös maksullisen Apple Developer -tilin, selaimen tietojen täyttämiseen ja iPhonen sovelluksen oikeaan testaamiseen.
Mitkä ovat vaiheet iOS-sovelluksen julkaisuun Windowsilla?
Luo projektisi Expolla, asenna EAS CLI ja rekisteröidy Apple Developer Programiin. Rekisteröi iPhonesi, käynnistä development build ja luo sitten sovelluksen tiedot App Store Connectiin samalla bundle-tunnisteella kuin Expo-konfiguraatiossasi. Käynnistä sen jälkeen tuotantobuild, lähetä se EAS Submitilla ja testaa TestFlightissa, täytä lopuksi tiedot ja lähetä sovellus arviointiin selaimesta.
Paljonko sovelluksen julkaiseminen App Storessa maksaa?
Apple Developer Program -jäsenyys maksaa 99 $ vuodessa, ja se veloitetaan omassa valuutassasi. Se on pakollinen: ilman sitä ei ole App Store Connectia, TestFlightia, sisäistä jakelua eikä lähetystä App Storeen. Expon puolella EAS:n ilmaisversio sisältää rajallisen määrän buildeja kuukaudessa jonotuksen kera: tarkista nykyiset ehdot Expon hinnastosivulta.
Tarvitaanko iPhone, kun iOS-sovellus julkaistaan ilman Macia?
Teknisesti ei, mutta neuvon painokkaasti välttämään sitä, ja niin neuvoo Applekin: sen arviointiohjeet (guideline 2.1) edellyttävät, että sovellus on testattu laitteella bugien ja vakauden osalta ennen lähetystä. Tuore käytetty iPhone riittää, kunhan siinä pyörii iOS-versio, jota Expo SDK -versiosi tukee.
Miten iOS-sovellusta testataan ilman Macia?
Asenna Expo Go iPhoneesi: se lukee terminaalissa näkyvän QR-koodin ja lataa projektisi, ja jokainen muutos näkyy muutamassa sekunnissa. Expo Go sisältää vain Expon tarjoamat natiivimoduulit. Heti kun sovelluksesi käyttää puuttuvaa natiivikirjastoa, kuten RevenueCatin SDK:ta, tarvitset EAS Buildin kääntämän development buildin. Lopullisen buildin testaamisesta kertoo TestFlight sovelluksen testaamiseen.
Mitkä ovat iOS-kehityksen rajoitukset ilman Macia?
Et voi käyttää paikallista iOS-simulaattoria: se on osa Xcodea, joten se ei toimi Windowsilla. EAS:n paikalliset buildit (--local) eivät ole tuettuja Windowsilla: iOS-buildisi kulkevat Expon pilven kautta. Natiivikoodin debuggaus ja natiivilaajennusten kirjoittaminen käsin onnistuvat edelleen, mutta ovat vaikeampia, koska Applen työkalut ovat Xcodessa.