Ang Apple Certificate ay isang digital na dokumento na inilabas ng Apple Developer Portal para sa pag-sign ng code ng mga application para sa iOS, iPadOS, macOS, tvOS at watchOS. Ayon sa Apple Developer Support, 2026, ang mga sertipiko ay bahagi ng imprastraktura ng pampublikong susi (PKI) at kinakailangan upang kumpirmahin ang pagkakakilanlan ng developer. Sa artikulong ito ay tatalakayin natin ang mga uri ng sertipiko, ang proseso ng paggawa at pamamahala sa mga ito.
Mga pangunahing punto
Apple Certificate ay isang cryptographic na sertipiko sa X.509 format na inilabas ng certificate authority ng Apple (Apple Certificate Authority). Kinukumpirma nito na ang may-ari ay isang rehistradong miyembro ng Apple Developer Program at may karapatang mag-sign ng mga application para sa ecosystem ng Apple. Ang sertipiko ay binubuo ng isang pampublikong susi, metadata ng may-ari, at digital na lagda ng Apple CA — kahit sino ay maaaring i-verify ang pagiging tunay ng sertipiko gamit ang root certificate ng Apple na naka-embed sa operating system.
Ang arkitektura ng PKI ng Apple ay may tatlong antas: ang root certificate ng Apple (Apple Root CA), ang intermediate certificate (Apple Worldwide Developer Relations CA), at ang developer certificate. Apple Worldwide Developer Relations CA ay pumipirma sa lahat ng developer certificate — kung ang intermediate certificate na ito ay wala sa chain of trust, ang code signature ay itinuturing na hindi wasto. Ang mga root certificate ng Apple ay awtomatikong ina-update sa pamamagitan ng Apple Trust Store mechanism na naka-embed sa iOS at macOS.
Ang bawat sertipiko ay may panahon ng bisa — mula isa hanggang tatlong taon, depende sa uri. Apple Developer Program ay awtomatikong nag-aabiso sa developer 30 araw bago mag-expire ang sertipiko sa pamamagitan ng email at push notification. Pagkatapos ng pag-expire, ang lumang sertipiko ay hindi na magagamit para mag-sign ng mga bagong build — kailangang mag-isyu ng bago, ngunit ang mga application na na-sign gamit ang expired na sertipiko ay patuloy na gumagana sa mga device ng mga user.
Chain of trust ay ginagarantiyahan na ang developer certificate ay talagang inilabas ng Apple. Sinusuri ng iOS: ang root certificate na Apple Root CA (naka-embed sa firmware), ang intermediate certificate na Apple Worldwide Developer Relations CA, ang developer certificate. Kung ang anumang elemento ng chain ay nawawala o hindi wasto, iOS ay hinaharangan ang paglunsad ng application na may error na code signing. Ang macOS ay nagbibigay ng security utility para suriin ang chain of trust ng anumang sertipiko sa keychain.
Ang proseso ng pag-sign ng code gamit ang Apple Certificate ay batay sa asymmetric cryptography. Ang pribadong susi (private key) ay nakaimbak sa computer ng developer sa Keychain, habang ang pampublikong susi (public key) ay kasama sa sertipiko at ipinadala sa Apple Developer Portal. Kapag nag-sign ang Xcode ng isang application, gumagawa ito ng hash ng binary file at ine-encrypt ito gamit ang pribadong susi — ito ang digital na lagda. Ang device ay nagde-decrypt ng lagda gamit ang pampublikong susi mula sa sertipiko at ikinukumpara ito sa kinakalkulang hash.
Gumagamit ang Apple ng ECDSA (Elliptic Curve Digital Signature Algorithm) na may curve na P-256 para sa lahat ng sertipiko na inisyu pagkatapos ng 2021. Dati ay ginamit ang RSA-2048. Ang paglipat sa ECDSA ay nagpataas ng bilis ng verification ng lagda sa mga device at nagpababa ng laki ng lagda — para sa mga mobile application ito ay lalong mahalaga dahil ang verification ng lagda ay ginagawa sa bawat paglunsad. Ayon sa Apple Security Engineering (2025), ang ECDSA P-256 ay nagbibigay ng katumbas na antas ng seguridad sa RSA-2048 na may mas mababang computational cost.
Para sa mga proseso ng CI/CD, ang sertipiko kasama ang pribadong susi ay dapat i-export sa PKCS12 (.p12) at itago sa isang protektadong imbakan. GitHub Actions, Bitrise, Jenkins at iba pang CI system ay sumusuporta sa pag-import ng mga sertipiko sa pamamagitan ng environment variables o secrets. Pagkatapos ng import sa CI agent, ang sertipiko ay pansamantalang idinagdag sa keychain, ginamit para sa pag-sign, at tinanggal. Fastlane Match ay nag-automate ng prosesong ito, nag-si-sync ng mga sertipiko sa pagitan ng mga developer sa pamamagitan ng isang naka-encrypt na git repository.
Development sertipiko ay nagpapahintulot sa pag-sign ng mga application para sa pagpapatakbo sa mga pisikal na device ng developer. Para makuha ito, sapat na ang isang libreng Apple ID account — ang Xcode ay maaaring awtomatikong makabuo ng Development certificate. Distribution sertipiko ay inilalabas lamang para sa mga bayad na Apple Developer Program account ($99/taon) at kinakailangan para sa pagpapadala ng application sa App Store, Ad Hoc distribution, o Enterprise distribution. Isang account ay maaaring magkaroon ng maraming Distribution certificate — halimbawa, hiwalay para sa bawat application o para sa iba't ibang team.
Ang Apple Developer Portal ay nagbibigay ng ilang uri ng mga sertipiko, bawat isa ay para sa isang partikular na gawain. iOS App Development — pangunahing sertipiko para sa pag-sign ng mga application sa yugto ng pag-develop. Apple Distribution — pangunahing sertipiko para sa pag-publish sa App Store. Mac Development at Mac Distribution — mga analog para sa macOS application. Para sa bawat uri ng sertipiko ay may hiwalay na kahilingan (CSR) sa Apple Developer Portal.
Ang isang hiwalay na kategorya ay mga sertipiko para sa push notification. Apple Push Notification service (APNs) ay nangangailangan ng alinman sa isang hiwalay na SSL certificate o paggamit ng authentication tokens (APNs Auth Key). Ang mga SSL certificate ng APNs ay inilalabas nang hiwalay para sa Development (Sandbox) at Production na kapaligiran at nakatali sa isang partikular na App ID. APNs Auth Key — isang mas modernong approach: isang susi (.p8) ay naglilingkod sa lahat ng application ng account, na nagpapasimple sa pamamahala.
| Uri ng sertipiko | Layunin | Panahon ng bisa |
|---|---|---|
| iOS App Development | Pag-sign para sa pagsubok sa mga device | 1 taon |
| Apple Distribution | Pag-publish sa App Store at Ad Hoc | 1 taon |
| Mac Development | Pag-sign ng macOS application para sa pag-develop | 1 taon |
| Mac Distribution | Pag-publish sa Mac App Store | 1 taon |
| APNs SSL (Sandbox) | Push notification sa test environment | 1-3 taon |
| APNs SSL (Production) | Push notification sa produksyon | 1-3 taon |
Ang paggawa ng Apple Certificate ay nagsisimula sa pagbuo ng isang Certificate Signing Request (CSR) sa pamamagitan ng Keychain Access sa macOS. Keychain Access ay gumagawa ng isang pares ng susi: ang pribadong susi ay nananatili sa keychain, at ang CSR ay ipinapadala sa Apple Developer Portal. Pagkatapos ng verification ng pagkakakilanlan, pinipirma ng Apple ang CSR at inilalabas ang handa na sertipiko (.cer) na kailangang i-download at i-install sa pamamagitan ng double-click.
Para sa pamamahala ng maraming proyekto at team, ang Apple ay nagbibigay ng kakayahang gumawa ng mga sertipiko para sa iba't ibang Team ID. Isang developer ay maaaring maging miyembro ng maraming team (sa pamamagitan ng Apple Developer Program — App Store Connect), at para sa bawat team ay inilalabas ang hiwalay na mga sertipiko. Xcode ay awtomatikong nagpapalit ng mga sertipiko depende sa napiling team sa mga setting ng Signing & Capabilities.
Ang pag-revoke ng sertipiko ay isang kritikal na operasyon: lahat ng application na na-sign gamit ang sertipiko na ito ay hindi na mai-install sa mga bagong device (ang mga naka-install na ay patuloy na gumagana). Apple Developer Portal ay nagpapahintulot sa pag-revoke ng anumang sertipiko sa seksyong Certificates. Mga dahilan ng pag-revoke: kompromiso ng pribadong susi, pag-alis ng developer mula sa team, paglabag sa mga tuntunin ng Apple Developer Program. Pagkatapos ng pag-revoke, kailangang mag-isyu ng bagong sertipiko at mag-sign muli ng lahat ng aktibong build.
Keychain — ang system storage ng macOS para sa mga sertipiko, pribadong susi, at password. Lahat ng Apple certificate at kaukulang pribadong susi ay nakaimbak sa login keychain (login.keychain) ng user. Ang Xcode ay uma-access sa Keychain kapag nagpi-sign ng code, awtomatikong pumipili ng angkop na sertipiko batay sa uri ng build. Para sa pag-diagnose ng mga problema sa pag-sign, gamitin ang built-in na Keychain Access utility (folder /Applications/Utilities).
Ang pag-export ng sertipiko para sa CI/CD ay ginagawa sa pamamagitan ng Keychain Access: piliin ang sertipiko at ang kaukulang pribadong susi (dapat silang naka-expand sa iisang linya), i-right-click at piliin ang Export. Format — PKCS12 (.p12). Sa pag-export, hihingi ang Keychain ng password para protektahan ang file — ang password na ito ay kakailanganin sa pag-import sa CI server. Kung walang pribadong susi, ang na-export na sertipiko ay walang silbi para sa pag-sign — magagamit lamang ito para i-verify ang code na na-sign na.
Halimbawa ng command para mag-import ng sertipiko sa keychain ng CI agent gamit ang security utility:
# Paglikha ng pansamantalang keychain
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain
# Pag-import ng sertipiko mula sa .p12
security import certificate.p12 -k build.keychain \
-P "${P12_PASSWORD}" -T /usr/bin/codesign
# Pag-configure ng patakaran sa pag-sign
security set-key-partition-list -S apple: -s \
-k "temp" build.keychain
Security create-keychain ay gumagawa ng pansamantalang keychain na nakahiwalay sa keychain ng user. Ito ay mahalaga para sa CI upang hindi dumihan ang system keychain ng agent. Ang flag na -T /usr/bin/codesign ay nagpapahintulot sa codesign utility na ma-access ang mga susi nang hindi humihingi ng password — kung hindi, ang awtomatikong pag-sign sa pipeline ay mapuputol ng isang dialog. Ang command na set-key-partition-list ay kinakailangan para sa compatibility sa mga kinakailangan ng macOS para sa pag-sign ng code sa automatic mode.
Ang pinakakaraniwang error — “No signing certificate found” sa pag-compile sa Xcode. Nangyayari kapag sa Keychain ay walang sertipiko na may pribadong susi na tumutugma sa napiling uri ng build. Solusyon: suriin ang Keychain Access para sa pagkakaroon ng sertipiko, i-download ito mula sa Apple Developer Portal, at i-install. Kung ang pribadong susi ay nawala (lumang computer, muling pag-install ng system), kailangang i-revoke ang lumang sertipiko at mag-isyu ng bago.
Ang error na “Valid signing certificate not found” sa CI/CD ay nangyayari kapag ang intermediate Apple certificates (Apple Worldwide Developer Relations CA) ay hindi naka-install sa agent. Apple ay nagsasama ng intermediate certificates sa chain kapag nagda-download ng developer certificate, ngunit sa manual na pag-export ng .p12 ay maaaring wala ang mga ito. Solusyon — i-download ang intermediate certificates mula sa Apple Certificate Authority website at i-install ang mga ito sa keychain ng CI agent.
Ang problema sa expired na sertipiko ay nagpapakita ng error na “This certificate has an invalid issuer” sa pag-sign. Ipinapakita ng Apple Developer Portal ang status ng bawat sertipiko at ang expiration date. Kung ang application ay nai-publish na sa App Store na may expired na sertipiko, ito ay patuloy na gumagana — ang App Store ay gumagamit ng sarili nitong Apple certificate para sa distribution. Gayunpaman, para mag-upload ng bagong build ay kinakailangan ang isang valid na Distribution certificate. Ang Fastlane ay may kasamang cert command para sa awtomatikong paggawa at pag-renew ng mga sertipiko.
Mga madalas itanong
Hindi, para sa iOS at macOS ay inilalabas ang magkaibang uri ng mga sertipiko — iOS App Development at Mac Development. Apple Distribution sertipiko ay nahahati rin ayon sa platform. Kapag gumagawa ng sertipiko sa Apple Developer Portal, kailangang tukuyin ang target na platform — walang universal na sertipiko para sa lahat ng platform.
Kailangang i-revoke ang lumang sertipiko sa Apple Developer Portal sa pamamagitan ng Certificates, Identifiers & Profiles. Pagkatapos ay gumawa ng bagong CSR sa pamamagitan ng Keychain Access at mag-isyu ng bagong sertipiko. Lahat ng application na na-sign gamit ang lumang sertipiko ay mangangailangan ng muling pag-sign at muling pag-upload sa App Store kung kailangan maglabas ng update.
Para sa isang Apple Developer Program account, pinapayagan ang hanggang dalawang Distribution certificate at walang limitasyong bilang ng Development certificate nang sabay-sabay. Enterprise account ay may hiwalay na limitasyon. Kung naabot ang limitasyon ng Distribution certificate, kailangang i-revoke ang isa sa mga umiiral bago gumawa ng bago.
Gamitin ang security utility: security find-identity -v -p basic ay maglilista ng lahat ng sertipiko sa keychain na may expiration date. Para sa isang partikular na sertipiko, tukuyin ang SHA-1 hash nito: security find-certificate -c “Developer” -p | openssl x509 -noout -enddate.
Oo, ang mga sertipiko ay nakatali sa isang partikular na Apple Developer account (Team ID). Kapag nagbago ng account, ang mga lumang sertipiko ay nagiging hindi wasto para sa bagong Team ID. Xcode kapag nagbago ng account sa Accounts Preferences ay awtomatikong humihiling ng paggawa ng mga bagong sertipiko para sa bagong team.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din