# EAS Submit iOS: Expo app közzététele az App Store-ban

> Az EAS Submit elküldi az iOS buildet az App Store Connectbe, ahol megjelenik a TestFlightban. A felülvizsgálatra küldést az App Store Connectben kell elvégezned.

Eredeti oldal: [EAS Submit iOS: Expo app közzététele az App Store-ban](https://devoria.fr/hu/blog/eas-submit-ios-expo-app-store-kozzetetel)
Szerző: [Mehdi Azizi](https://devoria.fr/hu/mehdi-azizi)
Megjelenés: 2026-10-25
A tartalom utolsó frissítése: 2026-10-25


`eas submit --platform ios` elküldi az iOS buildedet az App Store Connectbe, ahol az Apple feldolgozása után megjelenik a TestFlightban. **A parancs nem küldi be az appodat az Apple felülvizsgálatára: a build kiválasztása és a felülvizsgálatra küldés az App Store Connectben marad a te dolgod.** Az automatizáláshoz kell neki az adatlapod azonosítója (`ascAppId`) és egy App Store Connect API-kulcs.

Az iOS appjaimat, köztük a Solyst, a TradaZent és a Nolerát, Expóval, EAS Builddel és EAS Submittal teszem közzé. Ez az útmutató az [Expo iOS-küldésről szóló dokumentációját](https://docs.expo.dev/submit/ios/) követi, amit 2026. október 25-én néztem át újra. Ha nincs Maced, a teljes folyamatot az [iOS-app közzététele Mac nélkül](https://devoria.fr/hu/blog/ios-app-kozzetetele-mac-nelkul-expo-eas) cikkben találod. Itt a küldésre koncentrálunk.

## Mi kell az első parancs előtt

Az Expo három előfeltételt sorol fel:

- **Egy fizetős Apple Developer fiók.** Az árat és a regisztrációt az [Apple fejlesztői fiók](https://devoria.fr/hu/blog/apple-fejlesztoi-fiok-ar) cikkben találod.
- **Egy bundle-azonosító** az `ios.bundleIdentifier` mezőben. Az [Expo konfigurációs referenciája](https://docs.expo.dev/versions/latest/config/app/) szerint te találod ki, de egyedinek kell lennie az App Store-ban.
- **Telepített EAS CLI**, utána `eas login` az Expo-fiókoddal.

Kell egy aláírt production build is. Az EAS Build készíti el az általa kezelt tanúsítvánnyal és profillal, ahogy az iOS tanúsítvány és provisioning profile cikk elmagyarázza.

### Az App Store Connect adatlap: te vagy az EAS?

Az EAS Submit egy olyan appba küldi a binárist, aminek léteznie kell az App Store Connectben.

**Létrehozhatod te magad.** [Az Apple súgója](https://developer.apple.com/help/app-store-connect/create-an-app-record/add-a-new-app) leírja a New App ablakot: platform, név, elsődleges nyelv, bundle-azonosító, SKU és felhasználói hozzáférés. Account Holder, Admin vagy App Manager szerepkör kell hozzá.

**Az EAS is létrehozhatja az első küldéskor.** Az [Expo TestFlightról szóló oldala](https://docs.expo.dev/submit/testflight/) szerint az `eas submit` létrehozza az adatlapot, amikor az első buildedet küldöd. Az [eas.json referenciája](https://docs.expo.dev/eas/json/) szerint ha kitöltöd az `ascAppId` mezőt, ez a lépés kimarad. A név az `appName` mezőből jön, ennek hiányában a konfigurációd `name` értékéből. Az elsődleges nyelv a `language` mezőből jön, alapértéke `en-US`. **Ha az appod először franciául jelenik meg, töltsd ki a `language` mezőt az első küldés előtt.**

Utána másold be az adatlap azonosítóját az `ascAppId` mezőbe. Az Expo megmondja, hol találod: nyisd meg az appodat az App Store Connectben, aztán App Information. Ez az Apple ID mező, a General Information alatt. **Ez egy szám, nem a bundle-azonosítód.**

## Miért API-kulcs, és miért nem az Apple ID-d

Az EAS Submit az Apple ID-ddal vagy egy App Store Connect API-kulccsal csatlakozik az Apple-höz.

Az Apple ID elakad a kétfaktoros hitelesítésen, amit az [Apple megkövetel](https://developer.apple.com/support/authentication/) minden App Store Connect-felhasználótól: egy embernek kell jóváhagynia a bejelentkezést. Az app-specifikus jelszó, amit az `EXPO_APPLE_APP_SPECIFIC_PASSWORD` változóban adsz át, megkerüli ezt a lépést, de [az Expo kevésbé biztonságosnak tartja](https://github.com/expo/fyi/blob/main/apple-app-specific-password.md), mint az API-kulcsot, ami az alapértelmezett és ajánlott módszere. **A kulccsal mindenféle interakció nélkül tudsz hitelesíteni, így automatizálhatod a küldést.**

Két módon szerezheted meg:

- **Hagyd, hogy az EAS kezelje.** Futtasd az `eas credentials --platform ios` parancsot, válaszd a `production` profilt, jelentkezz be az Apple-fiókodba, majd válaszd az „App Store Connect: Manage your API Key” lehetőséget.
- **Hozd a saját kulcsodat.** Az App Store Connectben: Users and Access, Integrations fül, App Store Connect API, Team Keys, majd Generate API Key. Admin fiók kell hozzá, és [az Expo útmutatója](https://github.com/expo/fyi/blob/main/creating-asc-api-key.md) Admin szerepkört ad a kulcsnak.

A második esetben jegyezd fel a Key ID-t, ami az aktív kulcsok listájában látszik, és az Issuer ID-t, ami [az Integrations oldal tetején](https://developer.apple.com/documentation/appstoreconnectapi/generating-tokens-for-api-requests) van. És ami a legfontosabb, őrizd meg a `.p8` fájlt: [csak egyszer töltheted le](https://developer.apple.com/documentation/appstoreconnectapi/creating-api-keys-for-app-store-connect-api), és az Apple nem tart meg róla másolatot.

> Az Apple szerint egy Admin kulcs felhasználókat hozhat létre és törölhet a fiókodban. Az Apple kéri, hogy soha ne tedd a kulcsot kódtárolóba.

## A minimális eas.json, amit bemásolhatsz

Minden érték kitalált: cseréld le a sajátjaidra.

```json
{
  "cli": {
    "appVersionSource": "remote"
  },
  "build": {
    "production": {
      "autoIncrement": true
    }
  },
  "submit": {
    "production": {
      "ios": {
        "ascAppId": "1234567890",
        "appleTeamId": "ABCDE12345",
        "ascApiKeyPath": "./keys/AuthKey_XXXXXXXXXX.p8",
        "ascApiKeyIssuerId": "your-issuer-id",
        "ascApiKeyId": "XXXXXXXXXX"
      }
    }
  }
}
```

- **`appVersionSource` és `autoIncrement`**: az EAS szerverei tárolják a build számát, és minden production buildnél megnövelik. [Az Expo ezt a távoli módot ajánlja](https://docs.expo.dev/build-reference/app-versions/) az EAS CLI 12 óta.
- **`ascAppId`**: az adatlapod azonosítója. Nélküle a nem interaktív mód hibára fut.
- **`appleTeamId`**: az Apple Developer csapatod azonosítója.
- **`ascApiKeyPath`, `ascApiKeyIssuerId`, `ascApiKeyId`**: az API-kulcsod. Mindhárom mező elfogad környezeti változókat. Add hozzá a `keys` mappát a `.gitignore` fájlodhoz.

Az `appleId` mező csak akkor kell, ha az Apple ID-ddal jelentkezel be. Ha az EAS már kezeli a kulcsodat, a három `ascApiKey` mezőt is töröld. A három appomnál, amiket október 25-én néztem át, a production küldési profil csak az `ascAppId` mezőt tartalmazza, a Solysnál még az `appleTeamId` mezőt: a fájlban nincs kulcs.

## A build, aztán a küldés indítása

```bash
eas build --platform ios --profile production
eas submit --platform ios
```

Más opció nélkül az `eas submit` megkér, hogy válaszd ki a küldendő buildet, és első futtatáskor elkéri az Apple ID-dat. Ha létezik `production` küldési profil, alapból azt használja. Az [EAS CLI referenciája](https://docs.expo.dev/eas/cli/) felsorolja azokat az opciókat, amelyekkel megúszod a választást:

| Opció            | Mit csinál                      |
| ---------------- | ------------------------------- |
| `--latest`       | Elküldi a legutóbbi iOS buildet |
| `--id`           | Elküld egy adott EAS buildet    |
| `--path`         | Elküld egy helyi .ipa fájlt     |
| `--url`          | Elküld egy online archívumot    |
| `--groups`       | Hozzáadja egy belső csoporthoz  |
| `--what-to-test` | Kitölti a „What to test” mezőt  |

Ha mindent egyben akarsz, add hozzá az `--auto-submit` kapcsolót a build parancshoz. Az [Expo automatikus küldésről szóló oldala](https://docs.expo.dev/build/automate-submissions/) szerint a kész build az EAS Submitba megy, a build profillal azonos nevű küldési profillal. Ha másikat akarsz: `--auto-submit-with-profile=nom`. **A build a TestFlightba megy, nem felülvizsgálatra.**

CI-ban add hozzá a `--non-interactive` kapcsolót és egy `EXPO_TOKEN` tokent. A parancs ilyenkor semmit sem kérdezhet tőled: kell neki az `ascAppId` a profilban és egy API-kulcs, vagy az, amit az EAS az apphoz kapcsolt, vagy a sajátod a három `ascApiKey` mezőben.

## Mi történik a küldés után

**1. Az Apple feldolgozza a buildet.** Ezen át kell mennie, mielőtt megjelenik az App Store Connectben, és a végén [az Apple küld egy e-mailt](https://developer.apple.com/help/app-store-connect/manage-builds/upload-builds). Az Expo szerint általában 10-15 perc, mire látod a TestFlightban.

**2. Exportmegfelelőség.** A Missing Compliance státusz azt jelenti, hogy hiányzik a titkosításra vonatkozó nyilatkozatod. Az App Store Connect minden új verziónál felteszi ezeket a kérdéseket, kivéve ha az Info.plist már megválaszolja őket. Expóban a kulcs neve `ios.config.usesNonExemptEncryption`:

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

Az [Apple](https://developer.apple.com/documentation/security/complying-with-encryption-export-regulations) szerint a `false` akkor jó, ha az appod, a könyvtárakat is beleértve, nem használ titkosítást, vagy csak mentesített titkosítást. A rendszer titkosítása, például a HTTPS az URLSessionön keresztül, általában ilyen. **Csak akkor állíts `false` értéket, ha az appodra ez igaz: a nyilatkozat kötelez.** Mint minden Info.plist-kulcs, ez is új buildet igényel.

**3. TestFlight.** Ready to Submit státusznál [az Apple szerint](https://developer.apple.com/help/app-store-connect/reference/app-build-statuses) a build mehet a belső tesztelőkhöz, átmehet a béta felülvizsgálaton a külsőkhöz, vagy mehet App Store felülvizsgálatra. A profil `groups` mezője hozzáadja a belső csoportjaidhoz. Minden mást a [TestFlight az app teszteléséhez](https://devoria.fr/hu/blog/testflight-iphone-app-tesztelese) cikkben találsz.

## A küldés nem egyenlő a felülvizsgálatra küldéssel

[Az Expo leírja](https://docs.expo.dev/submit/introduction/): egy TestFlight build nem jelenik meg automatikusan az App Store-ban. Az EAS Submit nem tölti ki sem az adatlapodat, sem a képernyőképeidet. Négy lépés marad az App Store Connectben, amiket [az Apple felülvizsgálatra küldésről szóló súgója](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/submit-an-app) ír le:

1. **Töltsd ki a verzió kötelező metaadatait.**
2. **Válaszd ki a buildet** a verzió Build szekciójában.
3. **Kattints az „Add for Review” gombra.** A verzió Ready for Review státuszba kerül, de még semmi nem ment felülvizsgálatra.
4. **Kattints a „Submit for Review” gombra.** A státusz In Review lesz, amikor a felülvizsgálat elindul.

## Gyakori hibák és a javításuk

| Megjelenő hiba      | Ok                            | Javítás                       |
| ------------------- | ----------------------------- | ----------------------------- |
| ITMS-90189          | A build szám már foglalt      | `autoIncrement`               |
| ITMS-90062 ou 90186 | A verzió már lezárva          | Növeld a `version` értéket    |
| „Set ascAppId”      | Hiányzik az `ascAppId` CI-ban | Add hozzá az `ascAppId` mezőt |
| „API Keys cannot”   | Nincs kapcsolt kulcs          | `eas credentials`             |
| ITMS-90683          | Hiányzó engedélykérő szöveg   | `ios.infoPlist`               |
| ITMS-91053          | Hiányos manifeszt             | `ios.privacyManifests`        |
| ITMS-90725          | Túl régi iOS SDK              | Frissítsd az Expo SDK-t       |
| Missing Compliance  | Nem deklarált titkosítás      | `usesNonExemptEncryption`     |

Az Expo szerint a már használt build szám gyakori oka a küldés elutasításának: mindent megtalálsz a build szám és verzió cikkben. Három hibának saját útmutatója van: [ITMS-90683 Expóval](https://devoria.fr/hu/blog/itms-90683-missing-purpose-string-expo), [ITMS-91053 Expóval](https://devoria.fr/hu/blog/itms-91053-missing-api-declaration-expo) és ITMS-90725.

Az idézőjeles két üzenet az EAS-től jön, és az EAS konfigurációjában javítható. A Missing Compliance úgy is megoldható, hogy megválaszolod a kérdéseket az App Store Connectben. **Az összes többi sornál a javítás a binárist érinti: készíts új buildet, és küldd el újra.** Egy távoli frissítés nem változtat sem az Info.plisten, sem a manifeszten, sem a számokon.

## Küldd el az első appodat próbálgatás nélkül

A parancs csak egy lépés. Az [iOS Kit](https://devoria.fr/hu/kits/ios) az appjaim kiinduló kódjából indul, előfizetésekkel együtt, és négy lépésben visz el az App Store-ig, a saját tempódban.

Ha az első megjelenésedre készülsz, [csináld meg az ingyenes diagnózist](https://devoria.fr/hu/diagnostic): megmondja, mi akaszt meg valójában, és elküldi az Apple-elutasítás elleni ellenőrzőlistámat. Az adatlaphoz, a képernyőképekhez és a jóváhagyáshoz az [alkalmazás közzététele az App Store-ban](https://devoria.fr/hu/expertise/alkalmazas-kozzetetele-app-store) oldal minden lépést lefed.

## Gyakori kérdések

### Hogyan teszek közzé egy Expo appot az App Store-ban?

Indíts egy production buildet az EAS Builddel, aztán küldd el az `eas submit --platform ios` paranccsal. Az Apple feldolgozása után megjelenik a TestFlightban. Az App Store Connectben töltsd ki az adatlapot, válaszd ki ezt a buildet a verzióban, majd kattints az „Add for Review” és a „Submit for Review” gombra.

### Az EAS Submit felülvizsgálatra küldi az appomat az Apple-nél?

Nem. Az EAS Submit elküldi a binárist az App Store Connectbe, és a build megjelenik a TestFlightban. A felülvizsgálatra küldést kézzel kell elvégezned az App Store Connectben, miután kitöltötted az adatlapot és kiválasztottad a buildet.

### Hol találom az appom ascAppId-ját?

Az App Store Connectben nyisd meg az appodat, aztán App Information. Ez az Apple ID mező, a General Information alatt. Ez egy szám, ne keverd össze a bundle-azonosítóddal.

### Kell Apple ID az eas submit használatához?

Első futtatáskor a parancs elkéri. Utána, ha az `ascAppId` benne van a profilban és van App Store Connect API-kulcsod, interakció nélkül is futhat, akár CI-ban is. Az API-kulcs az Expo alapértelmezett és ajánlott módszere.

### Mennyi idő, mire látom a buildet a TestFlightban?

Az Expo szerint általában 10-15 perc a feldolgozás az Apple-nél, ami a végén küld egy e-mailt. Ha a build Missing Compliance státuszban marad, válaszold meg a titkosítással kapcsolatos kérdéseket, aztán deklaráld a konfigurációdban a következő buildekhez.


## A projekted

[Apple Review Kit](https://devoria.fr/hu/kits/review-apple): Az App Store review ellenőrzőlista, amit használok, az Apple kijavított elutasításai, megjegyzések a tesztelőnek és két Claude Code skill, amely átnézi az appod. 29 €.

[iOS Kit](https://devoria.fr/hu/kits/ios): Készítsd el az iPhone-appodat Claude Code-dal: az appjaim kiinduló kódja, a munkáját ellenőrző skillek, valamint az Apple Review Kit, az App Store Screenshots Kit és az ASO Kit. 129,99 €.
