# App Store Connect build number: verzió és buildszám

> A verziót látják a vásárlóid, a buildszám minden feltöltést azonosít. A kettő párosa egyedi kell legyen: Expóval az EAS növeli helyetted a buildszámot.

Eredeti oldal: [App Store Connect build number: verzió és buildszám](https://devoria.fr/hu/blog/app-store-connect-build-number-verzio-buildszam)
Szerző: [Mehdi Azizi](https://devoria.fr/hu/mehdi-azizi)
Megjelenés: 2026-11-04
A tartalom utolsó frissítése: 2026-11-04


Az App Store Connect build number a buildszám: a `CFBundleVersion` kulcs, ami minden feltöltést azonosít. A verzió, a `CFBundleShortVersionString`, az a szám, amit a vásárlóid az App Store-ban látnak. **Az Apple megköveteli, hogy a verzió és a buildszám párosa egyedi legyen: egy buildszámot ugyanahhoz a verzióhoz csak egyszer használhatsz.**

Expóval a verziót te magad állítod be, a buildszámot pedig az EAS minden production buildnél növelheti. Ez az útmutató elmagyarázza a két számot, az Apple szabályait, az ITMS-90062 és ITMS-90189 hibákat, és hogy mit nézz meg, ha nem jelenik meg a buildod.

Az iOS-appjaimat Expóval és EAS-szel adom ki, köztük a Solyst, a TradaZent és a Nolerát. A lent mutatott beállítások az ő `eas.json` fájljaikból valók.

## Verzió és buildszám: mi a különbség?

Két Info.plist-kulcs azonosítja az appodat. [Az Apple CFBundleShortVersionString dokumentációja](https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleshortversionstring) a felhasználó által látott verzióként írja le: három, pontokkal elválasztott egész szám, például 10.14.1. [A CFBundleVersion dokumentációja](https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleversion) a build verziójáról beszél: egy-három egész szám, csak számjegyekkel és pontokkal.

| Elem      | iOS-kulcs                  | Ki látja       | Expo-mező         |
| --------- | -------------------------- | -------------- | ----------------- |
| Verzió    | CFBundleShortVersionString | A vásárlóid    | `version`         |
| Buildszám | CFBundleVersion            | Te és az Apple | `ios.buildNumber` |

Kitalált példa: az 1.4.0-s verzióhoz a tesztelés alatt feltöltöd a 12-es, 13-as és 14-es buildet, aztán kiválasztasz egyet a reviewhoz. [Az App Store Connect súgója](https://developer.apple.com/help/app-store-connect/manage-builds/upload-builds) így foglalja össze: a verzió köti a buildet az adatlapjához, a buildszám pedig mindenhol azonosítja a rendszerben.

## Az Apple növelési szabályai

1. **A párosnak egyedinek kell lennie.** [Az Xcode Cloud dokumentációja](https://developer.apple.com/documentation/xcode/setting-the-next-build-number-for-xcode-cloud-builds) szerint az App Store Connect a verzió és a buildszám egyedi kombinációját követeli meg. Egy iPhone-app tehát új verziónál újrakezdheti 1-ről. Egy Mac-app nem: annak a száma mindig nőnie kell.
2. **A jóváhagyott verzió le van zárva.** Ha az Apple jóváhagyta az 1.4.0-s verziót, már nem adhatsz hozzá buildet. A következőnek magasabb számot kell kapnia.
3. **Minden számot egész számként hasonlít össze.** Az 1.10 az 1.9 után jön, mert a 10 nagyobb, mint a 9. Egy jóváhagyott 1.20 után feltöltött 1.9-es verziót elutasítanak.

A tanácsom: **tarts egy mindig növekvő, egész buildszámot, és ne állítsd vissza 1-re.** iPhone-on szabad újrakezdeni 1-ről, de az app teljes élettartamára egyedi szám megakadályozza, hogy összekeverj két buildet a TestFlightban. Ezt látom a remote módban futó appjaimnál: a számláló verzióról verzióra folytatódik.

## Verzió és build kezelése Expóval és EAS-szel

[Az Expo verziókról szóló oldala](https://docs.expo.dev/build-reference/app-versions/), amit 2026. szeptember 25-én frissítettek, szétválasztja a szerepeket. A verzió (`version` az app.json-ban) a te dolgod: akkor változtatod, amikor új kiadást készítesz. A buildszámot (`ios.buildNumber`) rábízhatod az EAS-re. Az Expo egyébként a növelés elfelejtését a feltöltéskori elutasítás gyakori okaként említi.

Mindent az eas.json-ban állítasz be:

```json
{
  "cli": {
    "appVersionSource": "remote"
  },
  "build": {
    "production": {
      "autoIncrement": true
    }
  }
}
```

- **`"remote"`**: az EAS szerverei tárolják a buildszámot. Az EAS CLI 12 óta ez az ajánlott működés. A számláló a konfigurációd értékéről vagy 1-ről indul, utána az `ios.buildNumber` figyelmen kívül marad.
- **`"local"`**: a konfigurációd a mérvadó. `autoIncrement` mellett az EAS átírja az `ios.buildNumber` értékét a fájlodban, és ezt a változást minden buildnél commitolnod kell.
- **`autoIncrement`**: [az eas.json referenciája](https://docs.expo.dev/eas/json/) a buildhez `true` vagy `"buildNumber"` értéket fogad el, a `"version"` pedig a verzió utolsó számjegyét növeli. Remote módban az Expo szerint a `"version"` nem támogatott.

Nálam a TradaZen és a Nolera `remote` módban van. A Solys `local` maradt: a buildszáma az app.json-ban él, és minden production build megnöveli a fájlban. **Mindkettő működik, de a remote mód kiküszöböli az elfelejtett commit kockázatát.**

Két parancs egészíti ki a rendszert. Az `eas build:version:set` inicializálja a távoli számlálót: add meg az Apple-nek utoljára feltöltött számot. Az `eas build:version:sync` átmásolja a távoli értékeket a projektedbe, ami hasznos, ha egyszer Xcode-dal fordítasz. EAS Update esetén a remote mód nem működik a `nativeVersion` policyval: az Expo az `appVersion`-t javasolja.

## ITMS-90062: a verzió már jóvá van hagyva

Az üzenet nagyjából így néz ki (kitalált számokkal):

```text
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].
```

Az Apple már jóváhagyta az 1.4.0-s verziót: nem adhatsz hozzá több buildet. **Emeld meg a verziót az app.json-ban, például 1.4.1-re, aztán indíts új buildet.** Csak a buildszám megváltoztatása nem elég.

Ha a hiba akkor is visszatér, amikor a `version` már friss, keress egy `ios.version` mezőt. [Az Expo konfigurációs referenciája](https://docs.expo.dev/versions/latest/config/app/) szerint ez iOS-en felülírja a `version` értékét. Ugyanez a megoldás a rokon ITMS-90186-os hibára, az „Invalid Pre-Release Train”-re, ami egy új buildek elől lezárt verziót jelez.

## ITMS-90189: Redundant Binary Upload

Itt a buildszám a gond:

```text
ERROR ITMS-90189: Redundant Binary Upload. You've already uploaded
a build with build number '12' for version number '1.4.0'.
```

Az 1.4.0 (12) páros már létezik az Apple-nél. Expóval négy ok szokott előfordulni:

- **A használt profilban nincs `autoIncrement`.** Ha külön profilt hozol létre a TestFlighthoz, mint a Nolera esetében, tedd bele újra az opciót.
- **A távoli számláló le van maradva.** Kézi feltöltések után váltottál `remote`-ra: futtasd az `eas build:version:set` parancsot az Apple-nél utoljára ismert számmal.
- **Local módban elmaradt a commit.** A következő build a régi számról indul újra.
- **Ugyanazt a binárist küldöd újra.** Az `eas submit` használatakor az új buildet válaszd, ne a régit.

**A javítás mindig ugyanaz: új build magasabb számmal.**

## „No builds available”: nem jelenik meg a buildod

A build elment, de az adatlapod nem kínálja fel. Ebben a sorrendben ellenőrizd.

1. **Még feldolgozás alatt áll.** Az Apple minden buildet feldolgoz, mielőtt megjelenítené, és a végén e-mailt küld. [Az Expo](https://docs.expo.dev/submit/ios/) általában 10-15 percről beszél. [Az Apple szerint](https://developer.apple.com/help/app-store-connect/manage-builds/view-builds-and-metadata) ha 24 óránál tovább van feldolgozás alatt, nyiss egy Feedback Assistant jegyet.
2. **A titkosítási nyilatkozatodra vár.** Ez a Missing Compliance állapot, lejjebb részletezem.
3. **Nem egyezik a verzió.** Egy 1.4.1-es build nem kerül be egy 1.5.0-ra előkészített adatlap alá az App Store Connectben. Hangold össze a kettőt.
4. **Közben megjelent egy verzió.** [A build kiválasztásáról szóló súgó](https://developer.apple.com/help/app-store-connect/manage-builds/choose-a-build-to-submit) szerint ilyenkor a lista csak az azóta feltöltött buildeket mutatja.
5. **A tesztelő nem látja.** A TestFlight appban a „no builds available” gyakran azt jelenti, hogy a build egyik csoportban sincs benne, béta reviewra vár vagy lejárt. A részletek itt vannak: [TestFlight az iPhone-appod teszteléséhez](https://devoria.fr/hu/blog/testflight-iphone-app-tesztelese).

### A fontos állapotok

Az állapotok, amelyek a leggyakrabban megmagyarázzák a hiányzó buildet, [az Apple listája](https://developer.apple.com/help/app-store-connect/reference/app-build-statuses) alapján. A Processing és a Failed nem szerepel benne: ezek feltöltési állapotok, amelyeket [a buildek követése](https://developer.apple.com/help/app-store-connect/manage-builds/view-builds-and-metadata) ír le.

| Állapot            | Mit jelent                    | A javításod               |
| ------------------ | ----------------------------- | ------------------------- |
| Processing         | Az Apple feldolgozza          | Várd meg az e-mailt       |
| Failed             | Hiba a feldolgozáskor         | Olvasd el, küldd újra     |
| Missing Compliance | Nincs titkosítási nyilatkozat | Válaszolj vagy Info.plist |
| Invalid Binary     | Nem megfelelő feltöltés       | Javítsd, új build         |
| Expired            | Letelt a 90 nap               | Új build                  |
| Ready to Submit    | Kész tesztre vagy reviewra    | Add hozzá egy csoporthoz  |

### A titkosítás egyszeri, végleges bejelentése

Az `ITSAppUsesNonExemptEncryption` kulcs nélkül [az Apple](https://developer.apple.com/documentation/bundleresources/information-property-list/itsappusesnonexemptencryption) minden új verziónál felteszi a megfelelőségi kérdéseket. Expóval a mező neve `ios.config.usesNonExemptEncryption`:

```json
{
  "expo": {
    "ios": {
      "config": {
        "usesNonExemptEncryption": false
      }
    }
  }
}
```

A `false` azt jelenti: nincs titkosítás, vagy csak mentesített titkosítás van. [Az Apple pontosítja](https://developer.apple.com/documentation/security/complying-with-encryption-export-regulations), hogy a rendszerbe épített titkosítás, például a HTTPS-kapcsolatok, általában mentesített, és hogy a válasz a könyvtáraidra is vonatkozik. Mindhárom appom `false` értéket ad meg. **Csak akkor írj `false`-t, ha ez igaz az appodra: a nyilatkozatért te felelsz.**

## Megváltoztatható egy már feltöltött build száma?

Nem. A szám bele van írva az aláírt binárisba: a javításához új build kell.

Amit megváltoztathatsz, az a verziódhoz csatolt build. Az Apple verziónként egy buildet enged, de [annyiszor cserélheted, ahányszor akarod](https://developer.apple.com/help/app-store-connect/manage-builds/choose-a-build-to-submit), egészen a reviewra küldésig:

1. Nyisd meg a verziót az App Store Connectben, a Build szekciót.
2. Vidd az egeret a jelenlegi build fölé, és kattints a törlés gombra, a mínuszjelre.
3. Kattints a hozzáadás gombra, a pluszjelre, válaszd ki a megfelelő buildet, aztán ments.

Ha eltávolítasz egy buildet egy verzióból, az nem törlődik a fiókodból. Ha a verzió már review alatt van, [előbb vond vissza a beküldést](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/remove-a-submission-from-review): a review elölről kezdődik.

## A következő feltöltésed előtt

A buildszám csak az egyik ellenőrzés feltöltéskor. A build image kiválthatja az [ITMS-90725](https://devoria.fr/hu/blog/itms-90725-sdk-version-issue-javitasa-expo) hibát, az aláírásnak pedig megvannak a saját csapdái, ezeket az [iOS fejlesztői tanúsítvány és provisioning profile](https://devoria.fr/hu/blog/ios-fejlesztoi-tanusitvany-provisioning-profile-expo) cikkben részletezem. A teljes folyamat a buildtől a TestFlightig az [iOS-app kiadása Mac nélkül](https://devoria.fr/hu/blog/ios-app-kozzetetele-mac-nelkul-expo-eas) cikkben van, a review időtartama pedig az [App Store jóváhagyási idő](https://devoria.fr/hu/blog/app-store-ellenorzesi-ido-mennyit-kell-varni) cikkben. Minden lépést összegyűjtöttem az [alkalmazás kiadása az App Store-ban](https://devoria.fr/hu/expertise/alkalmazas-kozzetetele-app-store) oldalon.

Ha az első kiadásodat készíted, [csináld meg az ingyenes diagnosztikát](https://devoria.fr/hu/diagnostic): megmondja, mi akadályozza a projektedet, és elküldi az Apple-elutasítás elleni checklistemet. Az app megépítéséhez, az előfizetések bekötéséhez és a kiadáshoz az [iOS & Android Kit](https://devoria.fr/hu/kits/ios) négy lépésben végigvisz az úton az appjaim Starter Code-jával, a saját tempódban.

## Gyakori kérdések

### Mi a különbség a verzió és a build number között az App Store Connectben?

A verzió a kiadásod nyilvános száma, például 1.4.0. A build number egy konkrét, ehhez a verzióhoz az Apple-nek feltöltött binárist azonosít. Egy verzióhoz több buildet is feltölthetsz, mindegyiket saját számmal.

### Minden feltöltésnél változtatni kell a buildszámot?

Igen, ugyanazon a verzión belül. Az Apple elutasítja a második feltöltést ugyanazzal a verzió-buildszám párossal, ez az ITMS-90189-es hiba. EAS-szel az `autoIncrement` minden production buildnél elintézi.

### Minden verziónál 1-ről kell újrakezdeni a buildszámot?

Nem kötelező. iPhone-on az Apple új verziónál alacsonyabb számot is elfogad, mert csak a párosnak kell egyedinek lennie. Egy mindig növekvő számlálót viszont egyszerűbb követni.

### Hogyan változtathatom meg a build numbert az App Store Connectben?

Egy már feltöltött build számát nem módosíthatod. A verziódhoz csatolt buildet viszont lecserélheted az adatlap Build szekciójában, amíg nincs review alatt. Új számhoz készíts új buildet.

### Miért nem jelenik meg a buildom az App Store Connectben?

Legtöbbször még feldolgozás alatt áll, vagy a titkosítási nyilatkozatodra vár. Azt is ellenőrizd, hogy a verziója egyezik-e az adatlapodéval. Ha 24 óránál tovább tart a feldolgozás, az Apple azt kéri, hogy nyiss jegyet.


## A projekted

[Review Kit](https://devoria.fr/hu/kits/app-review): Az App Store review checklistem, a javított Apple-elutasításaim, a Google Play checklist és három Claude Code skill. 17 990 Ft.

[iOS & Android Kit](https://devoria.fr/hu/kits/ios): Készítsd el iPhone- és Android-appodat Claude Code-dal: az appjaim kezdőkódja, az út a store-okig és az összes kit. 35 990 Ft.

[Diagnózis: mi választ el az iPhone-appodtól](https://devoria.fr/hu/diagnostic): 7 kérdés, 60 másodperc: megtudod, mi akadályoz valójában abban, hogy kiadd az iPhone-appodat, megkapod a 4 lépéses utadat és a hozzád illő kitet.
