# iOS fejlesztői tanúsítvány és provisioning profile Expóval

> A tanúsítvány igazolja, ki írta alá az appot, a provisioning profile pedig, melyik appot és hol. Expóval az EAS kezeli mindkettőt.

Eredeti oldal: [iOS fejlesztői tanúsítvány és provisioning profile Expóval](https://devoria.fr/hu/blog/ios-fejlesztoi-tanusitvany-provisioning-profile-expo)
Szerző: [Mehdi Azizi](https://devoria.fr/hu/mehdi-azizi)
Megjelenés: 2026-11-04
A tartalom utolsó frissítése: 2026-11-04


Az iOS fejlesztői tanúsítvány azt igazolja, ki írta alá az appodat. A provisioning profile (kiépítési profil) ezt a tanúsítványt egy konkrét apphoz köti, és megmondja, hol futhat. **Expóval szinte soha nem kell kézzel előállítanod őket: az EAS létrehozza, tárolja és megújítja őket, amikor buildet indítasz.**

Azért érdemes érteni, mit csinál az egyes fájlok. Amikor egy build nem hajlandó települni, vagy elakad egy feltöltés, ez a tudás spórol meg neked egy napot. Ez az útmutató sorra veszi a négy elemet, az élettartamukat, az Apple korlátait és a tipikus hibákat, mindegyikhez a megoldással.

Az iOS-es appjaimat Expóval és EAS-szel adom ki, köztük a Solyst és a TradaZent. A teljes folyamat itt van: [iOS app kiadása Mac nélkül](https://devoria.fr/hu/blog/ios-app-kozzetetele-mac-nelkul-expo-eas). Most az aláírás motorházteteje alá nézünk.

## Miért követeli meg az Apple az aláírást

Egy iOS appot alá kell írni ahhoz, hogy iPhone-ra települjön, vagy elmenjen az App Store Connectbe. Az aláírás garantálja, hogy az app egy Apple által ismert fejlesztőtől jön, és azóta senki nem módosította.

Az App Store-nál van egy megnyugtató részlet. [Az Apple TN3161-es technikai jegyzete](https://developer.apple.com/documentation/technotes/tn3161-inside-code-signing-certificates) szerint az App Store a feltöltéskor ellenőrzi, hogy érvényes-e a terjesztési tanúsítványod, aztán újra aláírja az appot, ami onnantól nem függ a tanúsítványod lejárati dátumától. **A tanúsítványaidnak tehát a feltöltés pillanatában kell érvényesnek lenniük, nem az app teljes élete alatt.**

## A négy elem, amit ismerned kell

[Az Expo azonosítókról szóló dokumentációja](https://docs.expo.dev/app-signing/app-credentials/) hármat sorol fel iOS-re: a terjesztési tanúsítványt, a profilokat és a push értesítési kulcsot. Én hozzáveszem az app azonosítót is, amely nélkül nem létezik profil.

### A terjesztési tanúsítvány

Ez a fejlesztői aláírásod. [Az Apple tanúsítványokról szóló súgója](https://developer.apple.com/help/account/certificates/certificates-overview) két családot különböztet meg:

- **Apple Development**: arra való, hogy fejlesztés közben a saját eszközeiden futtasd az appot. Egy személyhez tartozik.
- **Apple Distribution**: kijelölt teszteszközökre való terjesztéshez vagy az App Store Connectbe való feltöltéshez kell. A csapathoz tartozik, és csak a fiók tulajdonosa vagy egy admin hozhatja létre.

A terjesztési tanúsítvány nem egy adott apphoz tartozik: ugyanaz írja alá az összes appodat. Tartozik hozzá egy privát kulcs, és valójában az teszi lehetővé az aláírást. A TN3161 szerint egy Apple-tanúsítvány általában a létrehozásától számítva egy évig érvényes.

### Az app azonosító (App ID)

Az App ID azonosítja az appodat egy profilban. A bundle azonosítódat veszi át, például `com.example.myapp` (kitalált példa). [Az Apple súgója](https://developer.apple.com/help/account/identifiers/register-an-app-id) szerint az engedélyezett képességek listáját is tartalmazza: push értesítések, App Groups, Sign in with Apple…

Expóban ez a konfigurációd `ios.bundleIdentifier` mezője. **Egyszer és mindenkorra válaszd ki**: mindenhol azonosnak kell lennie, a konfigurációdban és az App Store Connectben is. Az App ID nem jár le. És [az Expo iOS-képességekről szóló doksija](https://docs.expo.dev/build-reference/ios-capabilities/) szerint az EAS minden buildnél szinkronizálja a képességeit a konfigurációddal.

### A provisioning profile

A profil teremti meg a kapcsolatot. Tartalmaz egy App ID-t, egy tanúsítványt és a típusától függően az engedélyezett eszközök listáját. Három típus érint téged:

- **Development**: a tesztappod a regisztrált eszközeiden.
- **Ad hoc**: egy pontos eszközlistára telepíthető build, ahol minden eszközt az UDID-ja azonosít. Ez az EAS „belső terjesztése”.
- **App Store**: az App Store Connecthez és a TestFlighthoz. Nem tartalmaz eszközlistát, ahogy [a TN3125-ös jegyzet](https://developer.apple.com/documentation/technotes/tn3125-inside-code-signing-provisioning-profiles) elmagyarázza.

Minden profilnak van lejárati dátuma: az Apple szerint általában legfeljebb egy év, az Expo szerint 12 hónap.

### A push értesítési kulcs (APNs)

Az APNs-kulcs feljogosítja a szerveredet, vagy az Expóét, hogy értesítéseket küldjön az appodnak. Ez egy .p8 fájl, amit csak egyszer tölthetsz le: [az Apple nem őrzi meg](https://developer.apple.com/help/account/keys/create-a-private-key) a fiókodban. Ugyanaz a kulcs az összes appodhoz jó, és [soha nem jár le](https://developer.apple.com/support/expiration/).

## Az összefoglaló táblázat

| Elem                    | Mire való                  | Élettartam          | Ki kezeli Expóval          |
| ----------------------- | -------------------------- | ------------------- | -------------------------- |
| Terjesztési tanúsítvány | A buildjeid aláírása       | Általában egy év    | Az EAS, bejelentkezés után |
| App ID                  | Az appod azonosítása       | Nem jár le          | Te, aztán az EAS           |
| App Store profil        | Feltöltés az Apple-nek     | Legfeljebb 12 hónap | Az EAS                     |
| Ad hoc profil           | Telepítés az iPhone-jaidra | Legfeljebb 12 hónap | Az EAS és az eszközeid     |
| APNs push kulcs         | Értesítések küldése        | Nem jár le          | Az EAS vagy te             |
| Ingyenes fiók profilja  | Tesztelés Xcode-dal        | 7 nap               | Az Xcode, nem az EAS       |

„Te, aztán az EAS”: te választod a bundle azonosítót, az EAS intézi a képességeket. „Az EAS és az eszközeid”: te regisztrálsz minden teszt-iPhone-t, az EAS elkészíti a profilt. Az utolsó sor az ingyenes Apple-fiókra vonatkozik: [az Apple fiókokról szóló súgója](https://developer.apple.com/help/account/basics/about-your-developer-account) szerint ennek profiljai a létrehozásuk után 7 nappal lejárnak.

## Az Apple korlátai, amiket ismerned kell

- **Terjesztési tanúsítványok**: fiókonként nagyon kevés. Az Apple súgója csapatonként és terjesztési típusonként egyről beszél, az Expo táblázata 2-es korlátról. A szabályt jegyezd meg: **ne hozz létre új tanúsítványt minden buildnél vagy minden gépen.**
- **APNs-kulcsok**: fiókonként legfeljebb 2, az Expo szerint.
- **Profilok**: nincs korlát, az Expo szerint.
- **Eszközök**: termékcsaládonként és tagsági évenként legfeljebb 100, [az Apple eszközökről szóló súgója](https://developer.apple.com/help/account/devices/devices-overview) szerint. Egy eszköz letiltása nem szabadít fel helyet. A számláló a következő tagsági év elején áll vissza 100-ra, ha eltávolítod az eszközöket.

## Amit az EAS megcsinál helyetted

[Az Expo kezelt azonosítókról szóló oldala](https://docs.expo.dev/app-signing/managed-credentials/) szerint az első iOS buildednél felajánlja, hogy legenerálja, ami hiányzik. Bejelentkezel az Apple Developer fiókodba, az EAS létrehozza a terjesztési tanúsítványt, a profilt és a push kulcsot, majd a saját szerverein tárolja őket. A következő buildek ezeket használják újra.

Három hasznos tudnivaló:

- **Az Apple-jelszavad a gépeden marad.** [Az Expo biztonsági oldala](https://docs.expo.dev/app-signing/security/) leírja, hogy nem kerül fel a szervereikre, és a tárolt azonosítók titkosítva vannak.
- **Az `eas credentials` mindent megmutat**: tanúsítványt, profilokat, push kulcsot. A paranccsal le is cserélheted vagy eltávolíthatod őket.
- **Ami az EAS-ben törlődik, az nem törlődik az Apple-nél.** Ha helyet akarsz felszabadítani, az Apple portálján kell visszavonnod.

Kézben is tarthatod a dolgot helyi azonosítókkal: egy `credentials.json` fájl mutat a tanúsítványodra (.p12) és a profilodra (.mobileprovision). Az Expo kéri, hogy ezeket a fájlokat tedd be a `.gitignore`-ba. Ugyanaz a szabály, mint [egy Expo app API-kulcsainál](https://devoria.fr/hu/blog/titkos-api-kulcs-expo-app): titok soha nem kerül a repóba.

## Tipikus hibák és a megoldásuk

### Lejárt profil

Egy ad hoc build magával viszi a profilját: amikor az lejár, az app nem nyílik meg többé a teszt-iPhone-jaidon. Az App Store-on viszont az Expo megerősíti, hogy a lejáratnak semmilyen hatása nincs az élesben futó appra. **A megoldás: indíts új buildet.** Az EAS új profilt generál, vagy megcsinálod magad az `eas credentials` paranccsal. Utána telepítsd újra az új buildet az eszközeidre.

Ne keverd össze a TestFlighttal: egy TestFlight build 90 nap után lejár, a tanúsítványodtól függetlenül. A részletek: [TestFlight az iPhone-os appod teszteléséhez](https://devoria.fr/hu/blog/testflight-iphone-app-tesztelese).

### Lejárt vagy visszavont tanúsítvány

Az Apple egyértelmű: ha érvényes a tagságod, az App Store-on már fent lévő appjaidat nem érinti. Viszont ezzel a tanúsítvánnyal aláírt buildet már nem tölthetsz fel. Egy feltöltött, de még be nem küldött build Invalid Binary jelölést kaphat, ha a tanúsítványát visszavonták. És [a visszavont tanúsítványt tartalmazó profilok érvénytelenné válnak](https://developer.apple.com/help/account/certificates/revoke-a-certificate).

**A megoldás: hozz létre új tanúsítványt az `eas credentials` paranccsal vagy a következő buildnél**, aztán hagyd, hogy az EAS újracsinálja a profilokat. És soha ne vonj vissza reflexből egy működő tanúsítványt.

### Az eszköz hiányzik az ad hoc profilból

A telepítési link nálad működik, de egy tesztelő iPhone-ján nem. Az ok: [az Expo belső terjesztésről szóló doksija](https://docs.expo.dev/build/internal-distribution/) szerint csak azok az eszközök telepíthetik az appot, amelyek a build pillanatában benne voltak a profilban.

A megoldás:

1. Regisztráld az eszközt az `eas device:create` paranccsal.
2. Indíts új buildet interaktív módban, bejelentkezve az Apple-fiókodba, hogy az EAS frissítse a profilt. Vagy írd alá újra a meglévő buildet az `eas build:resign` paranccsal, teljes újrafordítás nélkül.
3. CI-ban a nem interaktív mód újrahasználja a profilt, de nem frissíti a listáját. Add hozzá a `--refresh-ad-hoc-provisioning-profile` opciót.

Új vagy épp megújított fióknál az Apple-nek 24-72 óra is kellhet egy új eszköz feldolgozásához. Az első build, amely tartalmazza, ezért elbukhat: várj, aztán indítsd újra.

### Elérted a tanúsítványkorlátot

Az Apple nem engedi új terjesztési tanúsítvány létrehozását. Gyakran régi tanúsítványok lógnak ott: egy másik Macen Xcode-ból vagy egy másik build-szolgáltatással létrehozottak. **Használd újra a meglévő tanúsítványt, ha megvan a .p12 fájlja. Ha nincs, vond vissza azt, amelyik már nem kell**, az Apple portálján. A visszavonás nem érinti a már élő appjaidat, de érvényteleníti az azt tartalmazó profilokat.

### „Provisioning profile doesn't include signing certificate”

Ez az Xcode-üzenet azt jelenti, hogy a profil nem tartalmazza azt a tanúsítványt, amelynek a privát kulcsa a gépeden van. Tipikus ok: az Xcode automatikus aláírásának és az EAS azonosítóinak keverése. **Válassz egyetlen igazságforrást**: EAS buildek kezelt azonosítókkal, vagy helyi azonosítók, de ne mindkettő.

### Kulcsvisszavonás után leálltak az értesítések

Ha visszavonod az APNs-kulcsodat, az Expo figyelmeztet, hogy az összes app, amely használja, nem kap többé értesítéseket. Hozz létre új kulcsot, és töltsd fel az `eas credentials` paranccsal. A felhasználóid Expo Push tokenjei nem változnak.

### Új képesség, érvénytelen profil

Egy szolgáltatás bekapcsolása, például a push értesítéseké vagy az App Groupsé, [érvénytelenné teszi a profilt](https://developer.apple.com/help/account/provisioning-profiles/edit-download-or-delete-profiles): újra kell generálni. EAS-szel a képességek szinkronizálása minden buildnél megtörténik. Ha a profilt továbbra is elutasítja, az `eas credentials` paranccsal generálhatsz újat.

## Mi jön az aláírás után

Egy aláírt build csak egy lépés. Az adatlap, a képernyőképek, az adatvédelem és a felülvizsgálatra küldés itt van összegyűjtve: [alkalmazás kiadása az App Store-ban](https://devoria.fr/hu/expertise/alkalmazas-kozzetetele-app-store). Ha még nincs tagságod, kezdd [az Apple fejlesztői fiókkal](https://devoria.fr/hu/blog/apple-fejlesztoi-fiok-ar). Ha pedig érteni akarod, miért ajánlom kezdőknek az Expót, olvasd el: [React Native és Expo mobilapphoz](https://devoria.fr/hu/expertise/react-native-expo-mobilalkalmazas).

## Ha az első kiadásodra készülsz

Az első feltöltés előtt csináld meg az [ingyenes diagnosztikát](https://devoria.fr/hu/diagnostic): megmondja, mi akad el valójában a projektedben, és elküldi az Apple-elutasítás elleni ellenőrzőlistámat.

Az app felépítéséhez, az előfizetések bekötéséhez és a kiadáshoz úgy, hogy ne kelljen az aláírással birkóznod, az [iOS & Android Kit](https://devoria.fr/hu/kits/ios) négy lépésben vezet végig a folyamaton, az appjaim kiinduló kódjával, a saját tempódban.

## Gyakori kérdések

### Mi az a provisioning profile?

Az a fájl, amely engedélyezi, hogy az appod fusson, vagy elmenjen az Apple-höz. Összeköt egy app azonosítót, egy tanúsítványt és a típusától függően egy eszközlistát. Egy App Store profil nem tartalmaz eszközt, egy ad hoc profil felsorol néhányat.

### Ingyenes az iOS fejlesztői tanúsítvány?

Nincs külön ára: a terjesztési tanúsítvány benne van az Apple Developer Programban, ami évi 99 dollár. Ingyenes Apple-fiókkal az Xcode legfeljebb 3 eszközön enged tesztelni, de a profilok 7 nap után lejárnak, és kiadni nem lehet.

### Meddig érvényes egy Apple terjesztési tanúsítvány?

Az Apple szerint általában a létrehozásától számított egy évig. A provisioning profile-ok is legfeljebb 12 hónapig érvényesek. A push értesítési kulcs viszont soha nem jár le.

### Mi történik, ha lejár a terjesztési tanúsítványom?

Az App Store-on már fent lévő appjaiddal semmi, amíg érvényes a tagságod. Egyszerűen nem tölthetsz fel többé új buildet ezzel a tanúsítvánnyal aláírva. EAS-szel új tanúsítvány jön létre a következő buildnél vagy az `eas credentials` paranccsal.

### Kell Mac egy iOS-tanúsítvány létrehozásához?

Nem, ha az EAS-t használod. A parancssorból bejelentkezel az Apple-fiókodba, és az EAS legenerálja a tanúsítványt és a profilt, Windowson és Linuxon is. EAS nélkül a klasszikus módszer az Xcode-on vagy egy Mac kulcskarikáján keresztül megy.

### Hány eszközt tartalmazhat egy ad hoc profil?

A fiókod tagsági évenként legfeljebb 100 iPhone-t regisztrálhat, és ugyanennyit minden más eszközcsaládból. Egy letiltott eszköz továbbra is beleszámít. Ha több emberrel akarsz tesztelni, használd a TestFlightot.


## 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.
