Apple Certificate je digitální dokument vydaný Apple Developer Portal pro podepisování kódu aplikací pro iOS, iPadOS, macOS, tvOS a watchOS. Podle Apple Developer Support, 2026 jsou certifikáty součástí infrastruktury veřejného klíče (PKI) a jsou nezbytné pro potvrzení identity vývojáře. V článku se podíváme na typy certifikátů, proces jejich vytváření a správy.
Hlavní body
Apple Certificate je kryptografický certifikát ve formátu X.509 vydaný certifikační autoritou Apple (Apple Certificate Authority). Potvrzuje, že jeho vlastník je registrovaným členem Apple Developer Program a má právo podepisovat aplikace pro ekosystém Apple. Certifikát se skládá z veřejného klíče, metadat vlastníka a digitálního podpisu Apple CA — kdokoli může ověřit pravost certifikátu pomocí kořenového certifikátu Apple vestavěného v operačním systému.
Architektura PKI Apple zahrnuje tři úrovně: kořenový certifikát Apple (Apple Root CA), zprostředkující certifikát (Apple Worldwide Developer Relations CA) a vývojářský certifikát. Apple Worldwide Developer Relations CA podepisuje všechny vývojářské certifikáty — pokud tento zprostředkující certifikát chybí v řetězci důvěry, je podpis kódu považován za neplatný. Kořenové certifikáty Apple se automaticky aktualizují prostřednictvím mechanismu Apple Trust Store vestavěného v iOS a macOS.
Každý certifikát má dobu platnosti — od jednoho do tří let, v závislosti na typu. Apple Developer Program automaticky upozorňuje vývojáře 30 dní před vypršením certifikátu e-mailem a push oznámeními. Po vypršení nelze starý certifikát použít k podepisování nových buildů — je třeba vydat nový, ale aplikace podepsané prošlým certifikátem nadále fungují na zařízeních uživatelů.
Řetězec důvěry zaručuje, že vývojářský certifikát byl skutečně vydán společností Apple. iOS kontroluje: kořenový certifikát Apple Root CA (vestavěný ve firmwaru), zprostředkující certifikát Apple Worldwide Developer Relations CA, vývojářský certifikát. Pokud některý prvek řetězce chybí nebo je neplatný, iOS blokuje spuštění aplikace s chybou code signing. macOS poskytuje nástroj security pro kontrolu řetězce důvěry libovolného certifikátu v klíčence.
Proces podepisování kódu pomocí Apple Certificate je založen na asymetrické kryptografii. Soukromý klíč (private key) je uložen v počítači vývojáře v Keychain, zatímco veřejný klíč (public key) je součástí certifikátu a je odeslán do Apple Developer Portal. Když Xcode podepisuje aplikaci, vytvoří hash binárního souboru a zašifruje jej soukromým klíčem — to je digitální podpis. Zařízení dešifruje podpis veřejným klíčem z certifikátu a porovná jej s vypočteným hashem.
Apple používá algoritmus ECDSA (Elliptic Curve Digital Signature Algorithm) s křivkou P-256 pro všechny certifikáty vydané po roce 2021. Dříve se používal RSA-2048. Přechod na ECDSA zvýšil rychlost ověřování podpisu na zařízeních a zmenšil velikost podpisu — pro mobilní aplikace je to obzvláště důležité, protože ověřování podpisu probíhá při každém spuštění. Podle Apple Security Engineering (2025) poskytuje ECDSA P-256 ekvivalentní úroveň zabezpečení jako RSA-2048 s výrazně nižšími výpočetními náklady.
Pro procesy CI/CD musí být certifikát spolu se soukromým klíčem exportován do PKCS12 (.p12) a uložen v chráněném úložišti. GitHub Actions, Bitrise, Jenkins a další CI systémy podporují import certifikátů prostřednictvím proměnných prostředí nebo tajemství. Po importu na CI agenta je certifikát dočasně přidán do klíčenky, použit k podpisu a odstraněn. Fastlane Match tento proces automatizuje synchronizací certifikátů mezi vývojáři prostřednictvím šifrovaného git repozitáře.
Development certifikát umožňuje podepisovat aplikace pro spouštění na fyzických zařízeních vývojáře. K jeho získání stačí bezplatný účet Apple ID — Xcode může automaticky vygenerovat Development certifikát. Distribution certifikát je vydáván pouze pro placené účty Apple Developer Program ($99/rok) a je vyžadován pro odeslání aplikace do App Store, distribuci Ad Hoc nebo Enterprise. Jeden účet může mít několik Distribution certifikátů — například samostatné pro každou aplikaci nebo pro různé týmy.
Apple Developer Portal poskytuje několik typů certifikátů, z nichž každý je určen pro konkrétní úkol. iOS App Development — základní certifikát pro podepisování aplikací ve fázi vývoje. Apple Distribution — hlavní certifikát pro publikování v App Store. Mac Development a Mac Distribution — obdobné pro aplikace macOS. Pro každý typ certifikátu existuje samostatná žádost (CSR) v Apple Developer Portal.
Samostatnou kategorii tvoří certifikáty pro push oznámení. Apple Push Notification service (APNs) vyžaduje buď samostatný SSL certifikát, nebo použití autentizačních tokenů (APNs Auth Key). SSL certifikáty APNs jsou vydávány samostatně pro prostředí Development (Sandbox) a Production a jsou vázány na konkrétní App ID. APNs Auth Key — modernější přístup: jeden klíč (.p8) obsluhuje všechny aplikace účtu, což zjednodušuje správu.
| Typ certifikátu | Účel | Doba platnosti |
|---|---|---|
| iOS App Development | Podpis pro testování na zařízeních | 1 rok |
| Apple Distribution | Publikování v App Store a Ad Hoc | 1 rok |
| Mac Development | Podpis macOS aplikací pro vývoj | 1 rok |
| Mac Distribution | Publikování v Mac App Store | 1 rok |
| APNs SSL (Sandbox) | Push oznámení v testovacím prostředí | 1-3 roky |
| APNs SSL (Production) | Push oznámení v produkci | 1-3 roky |
Vytvoření Apple Certificate začíná vygenerováním žádosti o podpis certifikátu (Certificate Signing Request, CSR) prostřednictvím Keychain Access v macOS. Keychain Access vytvoří pár klíčů: soukromý klíč zůstává v klíčence a CSR je odeslána do Apple Developer Portal. Po ověření totožnosti Apple podepíše CSR a vydá hotový certifikát (.cer), který je třeba stáhnout a nainstalovat dvojitým kliknutím.
Pro správu více projektů a týmů Apple umožňuje vytvářet certifikáty pro různá Team ID. Jeden vývojář může být členem několika týmů (prostřednictvím Apple Developer Program — App Store Connect) a pro každý tým jsou vydávány samostatné certifikáty. Xcode automaticky přepíná certifikáty v závislosti na vybraném týmu v nastavení Signing & Capabilities.
Odvolání (revokace) certifikátu je kritická operace: všechny aplikace podepsané tímto certifikátem se přestanou instalovat na nová zařízení (již nainstalované nadále fungují). Apple Developer Portal umožňuje odvolat libovolný certifikát v sekci Certificates. Důvody odvolání: kompromitace soukromého klíče, odchod vývojáře z týmu, porušení podmínek Apple Developer Program. Po odvolání je třeba vydat nový certifikát a znovu podepsat všechny aktivní buildy.
Keychain (klíčenka) — systémové úložiště macOS pro certifikáty, soukromé klíče a hesla. Všechny certifikáty Apple a odpovídající soukromé klíče jsou uloženy v přihlašovací klíčence (login.keychain) uživatele. Xcode přistupuje do Keychain při podepisování kódu a automaticky vybírá vhodný certifikát podle typu buildu. Pro diagnostiku problémů s podepisováním použijte vestavěný nástroj Keychain Access (složka /Applications/Utilities).
Export certifikátu pro CI/CD se provádí přes Keychain Access: vyberte certifikát a odpovídající soukromý klíč (měly by být rozbaleny v jednom řádku), klikněte pravým tlačítkem a zvolte Export. Formát — PKCS12 (.p12). Při exportu Keychain vyžádá heslo pro ochranu souboru — toto heslo bude potřeba při importu na CI serveru. Bez soukromého klíče je exportovaný certifikát pro podepisování nepoužitelný — lze jej použít pouze pro ověření již podepsaného kódu.
Příklad příkazu pro import certifikátu do klíčenky CI agenta pomocí nástroje security:
# Vytvoření dočasné klíčenky
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain
# Import certifikátu z .p12
security import certificate.p12 -k build.keychain \
-P "${P12_PASSWORD}" -T /usr/bin/codesign
# Konfigurace zásad podepisování
security set-key-partition-list -S apple: -s \
-k "temp" build.keychain
Security create-keychain vytvoří dočasnou klíčenku izolovanou od uživatelské. To je důležité pro CI, aby se neznečišťovala systémová klíčenka agenta. Přepínač -T /usr/bin/codesign umožňuje nástroji codesign přístup ke klíčům bez vyžádání hesla — jinak by automatické podepisování v pipeline bylo přerušeno dialogem. Příkaz set-key-partition-list je nezbytný pro kompatibilitu s požadavky macOS na podepisování kódu v automatickém režimu.
Nejčastější chyba — „No signing certificate found“ při kompilaci v Xcode. Nastává, když v Keychain chybí certifikát se soukromým klíčem odpovídající vybranému typu buildu. Řešení: zkontrolujte Keychain Access na přítomnost certifikátu, stáhněte jej z Apple Developer Portal a nainstalujte. Pokud je soukromý klíč ztracen (starý počítač, přeinstalace systému), je třeba odvolat starý certifikát a vydat nový.
Chyba „Valid signing certificate not found“ v CI/CD nastává, když na agentovi nejsou nainstalovány zprostředkující certifikáty Apple (Apple Worldwide Developer Relations CA). Apple zahrnuje zprostředkující certifikáty do řetězce při stahování vývojářského certifikátu, ale při ručním exportu .p12 mohou chybět. Řešení — stáhněte zprostředkující certifikáty z webu Apple Certificate Authority a nainstalujte je do klíčenky CI agenta.
Problém s prošlým certifikátem se projevuje chybou „This certificate has an invalid issuer“ při podepisování. Apple Developer Portal zobrazuje stav každého certifikátu a datum vypršení. Pokud byla aplikace již publikována v App Store s prošlým certifikátem, nadále funguje — App Store používá pro distribuci vlastní certifikát Apple. Pro nahrání nového buildu je však vyžadován platný Distribution certifikát. Fastlane obsahuje příkaz cert pro automatické vytváření a obnovování certifikátů.
Často kladené otázky
Ne, pro iOS a macOS jsou vydávány různé typy certifikátů — iOS App Development a Mac Development. Apple Distribution certifikát je také rozdělen podle platforem. Při vytváření certifikátu v Apple Developer Portal je třeba uvést cílovou platformu — univerzální certifikát pro všechny platformy neexistuje.
Je třeba odvolat starý certifikát v Apple Developer Portal přes Certificates, Identifiers & Profiles. Poté vytvořte nový CSR přes Keychain Access a vydajte nový certifikát. Všechny aplikace podepsané starým certifikátem budou vyžadovat nové podepsání a opětovné nahrání do App Store, pokud je třeba vydat aktualizaci.
Pro jeden účet Apple Developer Program jsou povoleny nejvýše dva Distribution certifikáty a neomezený počet Development certifikátů současně. Enterprise účty mají samostatné limity. Pokud je dosažen limit Distribution certifikátů, je třeba před vytvořením nového odvolat jeden ze stávajících.
Použijte nástroj security: security find-identity -v -p basic vypíše všechny certifikáty v klíčence s daty vypršení. Pro konkrétní certifikát uveďte jeho SHA-1 hash: security find-certificate -c „Developer“ -p | openssl x509 -noout -enddate.
Ano, certifikáty jsou vázány na konkrétní Apple Developer účet (Team ID). Při změně účtu se staré certifikáty stávají neplatnými pro nové Team ID. Xcode při změně účtu v Accounts Preferences automaticky vyžaduje vytvoření nových certifikátů pro nový tým.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také