# Apple push értesítés tanúsítvány: .p8 vagy .p12 Expóval

> A push értesítésekhez az Apple egy le nem járó, minden appodhoz jó .p8 kulcsot vagy egy évente lejáró .p12 tanúsítványt ad. Expóval a kulcsot az EAS kezeli.

Eredeti oldal: [Apple push értesítés tanúsítvány: .p8 vagy .p12 Expóval](https://devoria.fr/hu/blog/apple-push-ertesites-tanusitvany-p8-p12-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 Apple push tanúsítványa engedélyezi, hogy egy szerver értesítéseket küldjön az appodnak az APNs-en, az Apple értesítési szolgáltatásán keresztül. Két formában létezik: egy .p12 tanúsítványként, ami egy évig érvényes és egyetlen apphoz kötődik, vagy egy .p8 kulcsként, ami nem jár le, és a fiókod összes appjához használható. **Expóval nincs szükséged a tanúsítványra: az EAS az első buildnél felajánlja, hogy létrehoz egy .p8 kulcsot, és az Expo push szolgáltatása helyetted használja.**

A [fejlesztői tanúsítványról és a provisioning profile-ról](https://devoria.fr/hu/blog/ios-fejlesztoi-tanusitvany-provisioning-profile-expo) szóló útmutató csak pár sorban említi a push kulcsot. Itt végigmegyünk rajta: a két formátum közti választás, a sandbox és a production környezet, a megújítás, és azok a hibák, amik TestFlightban elnémítják az értesítéseket.

Az appjaimat Expóval és EAS-szel publikálom. A Solys és a TradaZen is felveszi a konfigurációjába az `expo-notifications` plugint: ez készíti fel az appot az értesítések fogadására.

## Miért kér az Apple tanúsítványt vagy kulcsot

Egy push értesítés egy szerverről indul, a tiédről vagy az Expóéról, ami átadja az APNs-nek, ami pedig eljuttatja az iPhone-ra. Az APNs-nek tehát ellenőriznie kell, hogy ennek a szervernek joga van-e írni az appodnak. Az Apple kétféle módot kínál ennek igazolására.

- **Tokenalapú kapcsolat, .p8 kulccsal.** [Az Apple szerint](https://developer.apple.com/documentation/usernotifications/establishing-a-token-based-connection-to-apns) gyorsabb, több szerverről is használható, és egyetlen kulcs lefedi a csapatod összes appját vagy egy részüket. A szervered ezzel ír alá egy tokent, amit legalább óránként újra kell generálni.
- **Tanúsítványalapú kapcsolat, .p12 fájllal.** [Az Apple pontosítja](https://developer.apple.com/documentation/usernotifications/establishing-a-certificate-based-connection-to-apns), hogy ez a tanúsítvány egyetlen apphoz kötődik, és egy évig érvényes. Több app, több tanúsítvány.

[Az Apple lejáratokról szóló oldala](https://developer.apple.com/support/expiration/) is emlékeztet rá: az APNs tokenek aláíró kulcsa soha nem jár le.

## A .p8 / .p12 táblázat

| Szempont          | .p8 kulcs                    | .p12 tanúsítvány                       |
| ----------------- | ---------------------------- | -------------------------------------- |
| Érvényesség       | Nem jár le                   | Egy év                                 |
| Hatókör           | Az összes appod              | Egyetlen app                           |
| Környezet         | Létrehozáskor választod      | Sandbox és production                  |
| Megújítás         | Nincs, csak visszavonáskor   | Minden évben                           |
| Letöltés          | Csak egyszer                 | Exportálás a Macről                    |
| Darabszám         | Kettő környezetenként        | Egy appanként                          |
| Használat Expóval | Az EAS hozza létre és kezeli | Nem szerepel az Expo dokumentációjában |

Három pontosítás. A .p8 fájlt [csak egyszer lehet letölteni](https://developer.apple.com/help/account/keys/create-a-private-key): az Apple nem tárolja a fiókodban. A .p12-t viszont [a Mac kulcskarikájából exportálod](https://developer.apple.com/help/account/capabilities/communicate-with-apns-using-a-tls-certificate), azon a gépen, amelyik a tanúsítványt létrehozta. A környezetenkénti kétkulcsos limit pedig a csapatszintű kulcsokra vonatkozik. Az egyes appokra korlátozott kulcsokból az Apple környezetenként akár 200-at is enged.

[Az Expo azonosítókról szóló oldala](https://docs.expo.dev/app-signing/app-credentials/) csak a push kulcsról beszél, és fiókonként legfeljebb kettőt számol, a környezetek és az appszintű kulcsok megkülönböztetése nélkül. **Egy Expo apphoz a .p8 kulcs a jó választás.**

## Sandbox és production: két környezet

Az APNs-nek két szervere van: a development, más néven sandbox, és a production. [Az Apple](https://developer.apple.com/documentation/usernotifications/sending-notification-requests-to-apns) az elsőt tesztelésre, a másodikat a publikált appokra tartja fenn. Az app az `aps-environment` entitlement alapján tudja, melyiket használja. [Az Apple szerint](https://developer.apple.com/documentation/bundleresources/entitlements/aps-environment) az értéke az aláíró profilt követi: `development` fejlesztői profillal, `production` disztribúciós profillal és TestFlighthoz.

**Egy TestFlight build tehát a productionnel beszél, pontosan úgy, mint az App Store.**

Expo oldalon két részlet. [Az expo-notifications dokumentációja](https://docs.expo.dev/versions/latest/sdk/notifications/) szerint az entitlement a projektben mindig `development` értékkel szerepel, majd egy release build archívumában `production`-re vált. Az Expo token pedig létrehozáskor az app környezetéhez kötődik, amit automatikusan felismer: küldéskor semmit nem kell választanod.

Ha a kulcsot te magad hozod létre, az Apple megkérdezi a környezetét és a hatókörét: az egész csapat vagy csak bizonyos appok. A fejlesztői dokumentációja már sandboxra vagy productionre korlátozott csapatkulcsokat ír le, a régi, mindenhol érvényes kulcsokat továbbra is elfogadva. [A fiók súgója](https://developer.apple.com/help/account/capabilities/communicate-with-apns-using-authentication-tokens) viszont még mindig azt állítja, hogy a kulcs mindkét környezethez jó. Az Apple ellentmond önmagának: azt a környezetet vedd alapul, amit létrehozáskor választasz. **Egy csak sandboxra szóló kulcs se TestFlighthoz, se az App Store-hoz nem fog működni.**

## Hogyan kezeli az Expo a push kulcsot

[Az Expo beállítási útmutatója](https://docs.expo.dev/push-notifications/push-notifications-setup/) szerint (frissítve 2026. július 28-án) az első development buildnél felajánlja a push értesítések beállítását és egy APNs kulcs generálását. Mindkettőre mondj igent. EAS Build nélkül futtasd az `eas credentials` parancsot. Fizetős Apple Developer fiók kell hozzá.

Ezután:

- **Az EAS tárolja a kulcsot, és az appodhoz rendeli.** Az Expo szerint egy kulcs akárhány apphoz használható, és egy új feltöltése nem változtatja meg a felhasználóid Expo Push tokenjeit.
- **A szervered nem hívja az APNs-t.** Az Expo push szolgáltatásának küld, ami továbbítja az APNs-nek. [Az Expo azt kéri, hogy olvasd ki a nyugtákat](https://docs.expo.dev/push-notifications/sending-notifications/) nagyjából 15 perccel a küldés után: ott jelennek meg a hibák.
- **A plugin beállítja az entitlementet.** Vedd fel az `expo-notifications`-t a `plugins` közé:

```json
{
  "expo": {
    "plugins": ["expo-notifications"]
  }
}
```

Két csapda. [Az Expo GYIK](https://docs.expo.dev/push-notifications/faq/) szerint az Expo Go az SDK 53 óta nem kezeli a push értesítéseket, míg az expo-notifications oldala csak Androidot említi. Az Expo mindkét esetben development buildet javasol: azzal tesztelj. Ráadásul ha az `eas credentials` paranccsal törlöd a kulcsot, az az Expo szervereiről tűnik el, nem az Apple fiókodból. Ha helyet akarsz felszabadítani, vond vissza az Apple portálon. Mint minden titok, a .p8 fájl se kerüljön soha a repódba: ugyanaz a szabály, mint [egy Expo app API-kulcsainál](https://devoria.fr/hu/blog/titkos-api-kulcs-expo-app).

## Megújítás: mi jár le valójában

**A .p8 kulcsnál nincs mit megújítani.** Csak akkor áll le, ha visszavonod. Ha úgy gondolod, kompromittálódott, [az Apple azt tanácsolja](https://developer.apple.com/help/account/capabilities/communicate-with-apns-using-authentication-tokens), hogy hozz létre egy új kulcsot, állj át rá, és csak utána vond vissza a régit. Expóval a GYIK megadja a kulcscsere lépéseit: `eas credentials`, iOS, a build profilod, majd a push kulcs eltávolítása és egy új generálása.

**A .p12 tanúsítvány minden évben lejár.** Az Apple azt kéri, hogy a lejárat előtt frissítsd, és figyeld a dátumát a kulcskarikában. Ha lejárt vagy visszavonták, [már nem tudsz értesítést küldeni](https://developer.apple.com/help/account/certificates/certificates-overview) az appodnak. Külön megújítást az Apple nem ír le: az app azonosítójából létrehozol egy új tanúsítványt, a lejárat előtt telepíted a szerveredre, majd eltávolítod a régit. **A legjobb megújítás továbbra is az, ha átállsz a kulcsra.**

> Intune-nal vagy más eszközkezelő eszközzel kezelsz iPhone-okat? Az nem ugyanaz a tanúsítvány. Az eszközkezeléshez használt push tanúsítványt az Apple Push Certificates Portalon kell létrehozni, és évente megújítani. [Az Apple azt tanácsolja](https://support.apple.com/guide/deployment/dep2de55389a), hogy jegyezd fel, melyik Apple fiókot használtad: arra lesz szükség a megújításhoz.

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

### Developmentben működik, TestFlightban nem

1. **Rossz tokenre küldesz.** A TestFlight build productionben regisztrál, és új tokent kap. A development buildből származó token nem működik: az Apple `BadDeviceToken` választ ad, ha [a token nem illik a környezethez](https://developer.apple.com/documentation/usernotifications/handling-notification-responses-from-apns). A tokent magából a TestFlight appból szerezd meg.
2. **A production appnak nincsenek push azonosítói.** Ez az Expo GYIK diagnózisa. Nézd meg a projekt azonosítóoldalát az expo.dev-en, vagy futtasd az `eas credentials` parancsot.
3. **A kulcsod sandboxra korlátozott.** Cseréld le egy productionben érvényes kulcsra.
4. **Az iPhone nem kap tokent.** Ha a TestFlight buildet egy Xcode build fölé telepítetted, az Expo az eszköz újraindítását javasolja.

### „No valid aps-environment entitlement string found”

Az Expo GYIK szerint ez a hiba azt jelzi, hogy az iOS projektedhez nincs push kulcs beállítva. Nézd meg az azonosítóoldalt, majd indíts új buildet: az EAS ekkor felajánlja a kulcs generálását. Azt is ellenőrizd, hogy az `expo-notifications` tényleg szerepel-e a `plugins` között.

### ITMS-90078: Missing Push Notification Entitlement

Ezt az e-mailt az Apple a feltöltés után küldi: úgy tűnik, az appod regisztrál az APNs-nél, de az aláírásában nincs benne az `aps-environment` entitlement. [Az Expo SDK 51-ről szóló jegyzete](https://github.com/expo/fyi/blob/main/apns-entitlement-sdk-51.md) elmagyarázza. Ettől az SDK-tól kezdve az entitlement csak akkor kerül bele, ha az `expo-notifications` telepítve van. A figyelmeztetés az Apple két ellenőrzéséből ered. Az első összeveti az app azonosítód képességeit az app entitlementjeivel. A második egy értesítési regisztrációs metódust keres a binárisban, amit az Expo kódja minden appban tartalmaz.

**Ez figyelmeztetés, nem elutasítás**, pontosít az Expo. Ha használsz értesítéseket, add hozzá a plugint és buildelj újra: [az EAS minden buildnél szinkronizálja](https://docs.expo.dev/build-reference/ios-capabilities/) az app azonosító képességeit. Ha nem, vedd ki a Push Notifications képességet az azonosítódból az Apple portálon. A figyelmeztetés ezután is megmaradhat, következmények nélkül.

### InvalidCredentials, vagy hirtelen az összes app elnémul

Ha egy nyugtában `InvalidCredentials` áll, a push azonosítóid már nem érvényesek, gyakran azért, mert a kulcsot visszavonták. Minden app, ami használta, egyszerre elhallgat. Az Expo javítása: `eas credentials`, majd egy új kulcs. Ha a nyugta `InvalidProviderToken`-t említ, az Expo új buildet javasol a push kulcs és a profil újragenerálásával.

## Mielőtt bekapcsolod az értesítéseket

Ha a megjelenés előtt az iPhone-odon akarod tesztelni az értesítéseket, kövesd a [TestFlight az appod teszteléséhez](https://devoria.fr/hu/blog/testflight-iphone-app-tesztelese) útmutatót. Ha csendes értesítéseket küldesz az app felébresztésére, olvasd át újra [a 2.5.4-es guideline-t a háttérmódokról](https://devoria.fr/hu/blog/guideline-2-5-4-hattermod-elutasitas-apple). A teljes folyamat Mac nélkül itt van: [iOS app publikálása Mac nélkül](https://devoria.fr/hu/blog/ios-app-kozzetetele-mac-nelkul-expo-eas), a megjelenés lépései pedig az [app publikálása az App Store-ban](https://devoria.fr/hu/expertise/alkalmazas-kozzetetele-app-store) oldalon.

Az első küldés előtt csináld meg az [ingyenes diagnózist](https://devoria.fr/hu/diagnostic): megmondja, mi akad el a projektedben, é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 publikáláshoz az [iOS & Android Kit](https://devoria.fr/hu/kits/ios) négy lépésben vezet végig, az appjaim induló kódjával, a saját tempódban.

## Gyakori kérdések

### Lejár az Apple push tanúsítvány?

A .p12 tanúsítvány egy év után lejár, és ha nem cseréled le, leállnak az értesítéseid. A .p8 kulcs soha nem jár le: csak akkor áll le, ha visszavonod. Ez a fő ok, amiért a kulcsot érdemes választani.

### Minden apphoz külön push tanúsítvány kell?

.p12 tanúsítvánnyal igen: minden tanúsítvány egyetlen apphoz kötődik. Egy .p8 kulcs a fiókod összes appjához jó. Expóval tehát egyetlen kulcs lefedheti a teljes katalógusodat.

### Hogyan újítom meg az Apple push tanúsítványt?

Hozz létre egy új tanúsítványt az app azonosítójából, egy új aláírási kérelemmel, telepítsd a szerveredre, majd távolítsd el a régit. Csináld meg a lejárat előtt. A legegyszerűbb továbbra is az, ha átállsz egy .p8 kulcsra, amit nem kell megújítani.

### Elvesztettem a .p8 fájlomat, mit tegyek?

Az Apple csak egyszer engedi letölteni. Ha az EAS hozta létre a kulcsot, az Expo megőrzi, és az értesítéseid továbbra is működnek. Ha nem, hozz létre egy új kulcsot, add hozzá az `eas credentials` paranccsal, majd vond vissza a régit az Apple portálon. A felhasználóid Expo Push tokenjei nem változnak.

### Kell új build a push kulcs cseréje után?

Általában nem. A kulcsot a küldő szerver használja, nem a telepített app, és az Expo szerint egy új kulcs nem változtatja meg a tokeneket. Kivétel: ha a nyugták `InvalidProviderToken`-t jeleznek, az Expo új buildet javasol új kulccsal és új profillal.


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