App Store Connect build number: versio ja buildinumero
Kirjoittaja: Mehdi Azizi
Julkaistu , 8 min
Versio on asiakkaiden näkemä numero, build number yksilöi jokaisen latauksen. Parin on oltava yksilöllinen: Expolla EAS kasvattaa buildia puolestasi.
App Store Connectin build number on buildinumero: avain CFBundleVersion, joka yksilöi jokaisen latauksen. Versio, CFBundleShortVersionString, on numero, jonka asiakkaasi näkevät App Storessa. Apple vaatii, että version ja buildinumeron pari on yksilöllinen: samaa buildinumeroa voi käyttää vain kerran saman version sisällä.
Expolla asetat version itse, ja EAS voi kasvattaa buildinumeroa jokaisessa tuotantobuildissa. Tämä opas selittää molemmat numerot, Applen säännöt, virheet ITMS-90062 ja ITMS-90189 sekä sen, mitä tarkistaa, kun buildisi ei näy.
Julkaisen iOS-sovellukseni Expolla ja EAS:llä, muun muassa Solysin, TradaZenin ja Noleran. Alempana näytetyt asetukset ovat niiden eas.json-tiedostoista.
Versio ja buildinumero: mikä ero?
Kaksi Info.plistin avainta tunnistaa sovelluksesi. Applen dokumentaatio CFBundleShortVersionStringistä kuvaa sen käyttäjälle näkyväksi versioksi: kolme pisteillä erotettua kokonaislukua, kuten 10.14.1. CFBundleVersionin dokumentaatio puhuu buildin versiosta: yhdestä kolmeen kokonaislukua, vain numeroita ja pisteitä.
| Osa | iOS-avain | Kuka sen näkee | Expo-kenttä |
|---|---|---|---|
| Versio | CFBundleShortVersionString | Asiakkaasi | version |
| Buildinumero | CFBundleVersion | Sinä ja Apple | ios.buildNumber |
Kuvitteellinen esimerkki: version 1.4.0 testauksen aikana lataat buildit 12, 13 ja 14, ja valitset sitten niistä yhden tarkastukseen. App Store Connectin ohje tiivistää asian: versio liittää buildin sen sivuun, ja buildinumero yksilöi sen kaikkialla järjestelmässä.
Applen kasvatussäännöt
- Parin on oltava yksilöllinen. Xcode Cloudin dokumentaation mukaan App Store Connect vaatii yksilöllisen version ja buildinumeron yhdistelmän. iPhone-sovellus voi siis aloittaa uudelleen ykkösestä uudessa versiossa. Mac-sovellus ei voi: sen numeron on aina kasvettava.
- Hyväksytty versio on suljettu. Kun Apple on hyväksynyt version 1.4.0, et voi enää lisätä siihen buildeja. Seuraavalla on oltava suurempi numero.
- Jokaista lukua verrataan kokonaislukuna. 1.10 tulee 1.9:n jälkeen, koska 10 on suurempi kuin 9. Versio 1.9, joka ladataan hyväksytyn 1.20:n jälkeen, hylätään.
Neuvoni: pidä buildinumero kokonaislukuna, joka kasvaa aina, äläkä nollaa sitä ykköseen. Ykkösestä aloittaminen on iPhonella sallittua, mutta koko sovelluksen elinkaaren ajan yksilöllinen numero estää sekoittamasta kahta buildia TestFlightissa. Näin näen omissa sovelluksissani remote-tilassa: laskuri jatkaa versiosta toiseen.
Version ja buildin hallinta Expolla ja EAS:llä
Expon versiosivu, päivitetty 25. syyskuuta 2026, erottaa roolit. Versio (version app.jsonissa) on sinun vastuullasi: muutat sitä, kun valmistelet uutta julkaisua. Buildinumeron (ios.buildNumber) voit antaa EAS:n hoidettavaksi. Expo mainitsee muuten sen kasvattamisen unohtamisen yleisenä syynä latauksen hylkäämiseen.
Kaikki säädetään eas.jsonissa:
{
"cli": {
"appVersionSource": "remote"
},
"build": {
"production": {
"autoIncrement": true
}
}
}
"remote": EAS:n palvelimet säilyttävät buildinumeron. Tämä on suositeltu toiminta EAS CLI 12:sta lähtien. Laskuri alkaa konfiguraatiosi arvosta tai ykkösestä, ja sen jälkeenios.buildNumberohitetaan."local": konfiguraatiosi on ratkaiseva.autoIncrement-asetuksella EAS muokkaa tiedostosiios.buildNumber-arvoa, ja sinun on commitoitava muutos jokaisen buildin jälkeen.autoIncrement: eas.jsonin referenssi hyväksyy buildille arvontruetai"buildNumber", ja arvon"version"version viimeisen numeron kasvattamiseen. Expo tarkentaa, ettei"version"ole tuettu remote-tilassa.
Minulla TradaZen ja Nolera ovat remote-tilassa. Solys on jäänyt local-tilaan: sen buildinumero asuu app.jsonissa, ja jokainen tuotantobuild kasvattaa sitä tiedostossa. Molemmat toimivat, mutta remote-tila poistaa unohtuneen commitin riskin.
Kaksi komentoa täydentää kokonaisuuden. eas build:version:set alustaa etälaskurin: syötä viimeisin Applelle lähetetty numero. eas build:version:sync kopioi etäarvot projektiisi, mikä on hyödyllistä, jos joskus käännät Xcodella. EAS Updaten kanssa remote-tila ei toimi nativeVersion-käytännön kanssa: Expo suosittelee appVersion-käytäntöä.
ITMS-90062: versio on jo hyväksytty
Viesti näyttää tältä (kuvitteelliset numerot):
ERROR ITMS-90062: This bundle is invalid. The value for key
CFBundleShortVersionString [1.4.0] in the Info.plist file must
contain a higher version than that of the previously approved
version [1.4.0].
Apple on jo hyväksynyt version 1.4.0: et voi enää lisätä siihen buildia. Nosta versiota app.jsonissa, esimerkiksi 1.4.1:een, ja aja build uudelleen. Pelkkä buildinumeron muuttaminen ei riitä.
Jos virhe toistuu, vaikka version on ajan tasalla, etsi ios.version-kenttää. Expon konfiguraatioreferenssin mukaan se ohittaa iOS:llä version-kentän. Sama korjaus pätee sukulaisvirheeseen ITMS-90186, "Invalid Pre-Release Train", joka kertoo version olevan suljettu uusilta buildeilta.
ITMS-90189: Redundant Binary Upload
Tässä ongelma on buildinumerossa:
ERROR ITMS-90189: Redundant Binary Upload. You've already uploaded
a build with build number '12' for version number '1.4.0'.
Pari 1.4.0 (12) on jo Applella. Expolla toistuu neljä syytä:
- Käytetyssä profiilissa ei ole
autoIncrement-asetusta. Jos luot erillisen profiilin TestFlightia varten, kuten Noleran profiili, lisää asetus sinnekin. - Etälaskuri on jäljessä. Siirryit
remote-tilaan manuaalisten latausten jälkeen: ajaeas build:version:setviimeisimmällä Applen tuntemalla numerolla. - Commit unohtui local-tilassa. Seuraava build alkaa vanhasta numerosta.
- Lähetät saman binäärin uudelleen. Valitse
eas submit-komennolla uusi build, ei vanhaa.
Korjaus on aina sama: uusi build suuremmalla numerolla.
"No builds available": buildisi ei näy
Build lähti, mutta sivusi ei tarjoa sitä. Tarkista tässä järjestyksessä.
- Sitä käsitellään vielä. Apple käsittelee jokaisen buildin ennen sen näyttämistä ja lähettää sinulle sähköpostin lopuksi. Expo puhuu yleensä 10-15 minuutista. Applen mukaan jos käsittely kestää yli 24 tuntia, on avattava Feedback Assistant -tiketti.
- Se odottaa salausilmoitustasi. Tämä on tila Missing Compliance, josta lisää alempana.
- Versio ei täsmää. Build 1.4.1 ei asetu App Store Connectissa versiolle 1.5.0 valmistellun sivun alle. Yhdenmukaista ne.
- Välissä on julkaistu versio. Buildin valintaa koskevan ohjeen mukaan lista näyttää silloin vain sen julkaisun jälkeen ladatut buildit.
- Testaaja ei näe sitä. TestFlight-sovelluksessa "no builds available" tarkoittaa usein, että build ei ole missään ryhmässä, odottaa beta-tarkastusta tai on vanhentunut. Yksityiskohdat ovat artikkelissa TestFlight iPhone-sovelluksen testaamiseen.
Tilat, jotka kannattaa tuntea
Tilat, jotka useimmiten selittävät puuttuvan buildin, Applen listan mukaan. Processing ja Failed eivät ole siinä: ne ovat lataustiloja, jotka kuvataan buildien seurannassa.
| Tila | Mitä se tarkoittaa | Korjauksesi |
|---|---|---|
| Processing | Apple käsittelee buildia | Odota sähköpostia |
| Failed | Virhe käsittelyssä | Lue virhe, lähetä uudelleen |
| Missing Compliance | Salausta ei ilmoitettu | Vastaa tai Info.plist |
| Invalid Binary | Lataus ei vaatimusten mukainen | Korjaa, uusi build |
| Expired | 90 päivää ylitetty | Uusi build |
| Ready to Submit | Valmis testiin tai tarkastukseen | Lisää se ryhmään |
Ilmoita salaus kerralla
Ilman ITSAppUsesNonExemptEncryption-avainta Apple esittää vaatimustenmukaisuuskysymykset jokaisessa uudessa versiossa. Expossa kentän nimi on ios.config.usesNonExemptEncryption:
{
"expo": {
"ios": {
"config": {
"usesNonExemptEncryption": false
}
}
}
}
false tarkoittaa: ei salausta tai vain vapautettua salausta. Apple tarkentaa, että järjestelmään sisäänrakennettu salaus, kuten HTTPS-yhteydet, on yleensä vapautettu, ja että vastaus kattaa myös kirjastosi. Kaikki kolme sovellustani ilmoittavat false. Laita false vain, jos se pitää paikkansa sovelluksesi kohdalla: ilmoitus sitoo sinua.
Voiko jo lähetetyn buildin numeroa muuttaa?
Ei. Numero on kirjattu allekirjoitettuun binääriin: sen korjaamiseen tarvitaan uusi build.
Voit kuitenkin vaihtaa versioosi liitetyn buildin. Apple sallii vain yhden buildin per versio, mutta voit vaihtaa sen niin monta kertaa kuin haluat tarkastukseen lähettämiseen asti:
- Avaa versio App Store Connectissa, Build-osio.
- Vie osoitin nykyisen buildin päälle ja klikkaa poistopainiketta, miinusmerkkiä.
- Klikkaa lisäyspainiketta, plusmerkkiä, valitse oikea build ja tallenna.
Buildin poistaminen versiosta ei poista sitä tililtäsi. Jos versio on jo tarkastuksessa, peru ensin lähetys: tarkastus alkaa alusta.
Ennen seuraavaa latausta
Buildinumero on vain yksi latauksen tarkistuksista. Build-image voi laukaista virheen ITMS-90725, ja allekirjoituksella on omat ansansa, jotka käydään läpi artikkelissa iOS-kehittäjävarmenne ja provisioning profile. Koko ketju buildista TestFlightiin on artikkelissa iOS-sovelluksen julkaisu ilman Macia, ja tarkastusajat artikkelissa App Store -tarkastuksen kesto. Kaikki vaiheet on koottu sivulle sovelluksen julkaisu App Storessa.
Jos valmistelet ensimmäistä julkaisuasi, tee ilmainen diagnoosi: se kertoo, mikä projektissasi jumittaa, ja lähettää sinulle tarkistuslistani Applen hylkäysten välttämiseen. Sovelluksen rakentamiseen, tilausten kytkemiseen ja julkaisuun iOS & Android Kit kulkee neljän vaiheen polun sovellusteni Starter Coden kanssa, omaan tahtiisi.
Usein kysytyt kysymykset
Mikä ero on versiolla ja build numberilla App Store Connectissa?
Versio on julkaisusi julkinen numero, kuten 1.4.0. Build number yksilöi tietyn binäärin, joka on lähetetty Applelle tätä versiota varten. Voit lähettää samalle versiolle useita buildeja, kullakin oma numeronsa.
Pitääkö buildinumeroa muuttaa jokaisessa latauksessa?
Kyllä, saman version sisällä. Apple hylkää toisen latauksen samalla version ja buildinumeron parilla, ja tämä on virhe ITMS-90189. EAS:llä autoIncrement hoitaa sen jokaisessa tuotantobuildissa.
Pitääkö buildinumeron alkaa ykkösestä jokaisessa versiossa?
Se ei ole pakollista. iPhonella Apple hyväksyy pienemmän numeron uudelle versiolle, koska vain parin on oltava yksilöllinen. Aina kasvavaa laskuria on silti helpompi seurata.
Miten build number vaihdetaan App Store Connectissa?
Jo lähetetyn buildin numeroa ei voi muuttaa. Voit sen sijaan vaihtaa versioosi liitetyn buildin sivun Build-osiosta, kunhan versio ei ole tarkastuksessa. Uutta numeroa varten tee uusi build.
Miksi buildini ei näy App Store Connectissa?
Useimmiten sitä käsitellään vielä tai se odottaa salausilmoitustasi. Tarkista myös, että sen versio vastaa sivusi versiota. Jos käsittely kestää yli 24 tuntia, Apple pyytää avaamaan tiketin.

