Apple Certificate ایک ڈیجیٹل دستاویز ہے جو Apple Developer Portal کی طرف سے iOS، iPadOS، macOS، tvOS اور watchOS کے تحت ایپلیکیشنز کے کوڈ سائن کرنے کے لیے جاری کی جاتی ہے۔ Apple Developer Support, 2026 کے مطابق، سرٹیفکیٹس عوامی کلیدی بنیادی ڈھانچے (PKI) کا حصہ ہیں اور ڈیویلپر کی شناخت کی تصدیق کے لیے ضروری ہیں۔ اس مضمون میں ہم سرٹیفکیٹس کی اقسام، ان کی تخلیق اور انتظام کے عمل کا جائزہ لیں گے۔
اہم نکات
Apple Certificate ایک X.509 فارمیٹ کا خفیاتی سرٹیفکیٹ ہے جو Apple Certificate Authority کے ذریعے جاری کیا جاتا ہے۔ یہ تصدیق کرتا ہے کہ اس کا مالک Apple Developer Program کا رجسٹرڈ ممبر ہے اور اسے Apple ایکو سسٹم کے لیے ایپلیکیشنز سائن کرنے کا حق حاصل ہے۔ سرٹیفکیٹ عوامی کلید، مالک کے میٹا ڈیٹا اور Apple CA کے ڈیجیٹل دستخط پر مشتمل ہوتا ہے — کوئی بھی Apple کے روٹ سرٹیفکیٹ کا استعمال کرتے ہوئے سرٹیفکیٹ کی صداقت کی تصدیق کر سکتا ہے جو آپریٹنگ سسٹم میں شامل ہے۔
Apple کا PKI آرکیٹیکچر تین سطحوں پر مشتمل ہے: Apple Root CA، انٹرمیڈیٹ سرٹیفکیٹ (Apple Worldwide Developer Relations CA) اور ڈیویلپر سرٹیفکیٹ۔ Apple Worldwide Developer Relations CA تمام ڈیویلپر سرٹیفکیٹس پر دستخط کرتا ہے — اگر یہ انٹرمیڈیٹ سرٹیفکیٹ اعتماد کے سلسلے میں موجود نہ ہو تو کوڈ سائننگ کو غلط سمجھا جاتا ہے۔ Apple کے روٹ سرٹیفکیٹ خود بخود Apple Trust Store میکانزم کے ذریعے اپ ڈیٹ ہوتے ہیں جو iOS اور macOS میں شامل ہے۔
ہر سرٹیفکیٹ کی ایک میعاد ہوتی ہے — ایک سے تین سال تک، قسم کے لحاظ سے۔ Apple Developer Program خود بخود ڈیویلپر کو سرٹیفکیٹ کی میعاد ختم ہونے سے 30 دن پہلے ای میل اور پش نوٹیفیکیشن کے ذریعے مطلع کرتا ہے۔ میعاد ختم ہونے کے بعد پرانا سرٹیفکیٹ نئے بلڈز سائن کرنے کے لیے استعمال نہیں کیا جا سکتا — نیا سرٹیفکیٹ جاری کرنا ضروری ہے، تاہم میعاد ختم شدہ سرٹیفکیٹ سے سائن کردہ ایپلیکیشنز صارفین کے آلات پر کام کرتی رہتی ہیں۔
اعتماد کا سلسلہ اس بات کو یقینی بناتا ہے کہ ڈیویلپر کا سرٹیفکیٹ واقعی Apple نے جاری کیا ہے۔ iOS چیک کرتا ہے: Apple Root CA (فرم ویئر میں شامل)، انٹرمیڈیٹ سرٹیفکیٹ Apple Worldwide Developer Relations CA، ڈیویلپر سرٹیفکیٹ۔ اگر سلسلے کا کوئی بھی عنصر غائب یا ناقص ہو تو iOS ایپلیکیشن کو code signing کی خرابی کے ساتھ لانچ ہونے سے روک دیتا ہے۔ macOS keychain میں کسی بھی سرٹیفکیٹ کے اعتماد کے سلسلے کی جانچ کے لیے security یوٹیلیٹی فراہم کرتا ہے۔
Apple Certificate کے ساتھ کوڈ سائن کرنے کا عمل غیر متناسب خفیہ نگاری پر مبنی ہے۔ نجی کلید ڈیویلپر کے کمپیوٹر پر Keychain میں محفوظ ہوتی ہے، جبکہ عوامی کلید سرٹیفکیٹ میں شامل کی جاتی ہے اور Apple Developer Portal کو بھیجی جاتی ہے۔ جب Xcode ایپلیکیشن سائن کرتا ہے، تو یہ بائنری فائل کا ایک ڈائجسٹ (ہیش) بناتا ہے اور اسے نجی کلید سے خفیہ کرتا ہے — یہ ڈیجیٹل دستخط ہے۔ ڈیوائس سرٹیفکیٹ سے عوامی کلید کے ساتھ دستخط کو ڈیکرپٹ کرتی ہے اور اس کا موازنہ حسابی ہیش سے کرتی ہے۔
Apple 2021 کے بعد جاری کردہ تمام سرٹیفکیٹس کے لیے ECDSA (Elliptic Curve Digital Signature Algorithm) P-256 منحنی کے ساتھ استعمال کرتا ہے۔ پہلے RSA-2048 استعمال ہوتا تھا۔ ECDSA میں منتقلی نے ڈیوائسز پر دستخط کی تصدیق کی رفتار بڑھا دی اور دستخط کا سائز کم کر دیا — موبائل ایپلیکیشنز کے لیے یہ خاص طور پر اہم ہے کیونکہ ہر لانچ پر دستخط کی تصدیق کی جاتی ہے۔ Apple Security Engineering (2025) کے مطابق، ECDSA P-256 نمایاں طور پر کم حسابی لاگت پر RSA-2048 کے برابر سیکیورٹی فراہم کرتا ہے۔
CI/CD عمل کے لیے سرٹیفکیٹ کو نجی کلید کے ساتھ PKCS12 (.p12) میں ایکسپورٹ کرکے محفوظ ذخیرے میں رکھنا ضروری ہے۔ GitHub Actions، Bitrise، Jenkins اور دیگر CI سسٹمز ماحولیاتی متغیرات یا سیکرٹس کے ذریعے سرٹیفکیٹ درآمد کرنے کی حمایت کرتے ہیں۔ CI ایجنٹ پر درآمد کرنے کے بعد سرٹیفکیٹ عارضی طور پر keychain میں شامل کیا جاتا ہے، سائننگ کے لیے استعمال کیا جاتا ہے اور پھر حذف کر دیا جاتا ہے۔ Fastlane Match اس عمل کو خودکار بناتا ہے، خفیہ کردہ git ریپوزٹری کے ذریعے ڈیویلپرز کے درمیان سرٹیفکیٹس کو ہم آہنگ کرتا ہے۔
Development سرٹیفکیٹ ڈیویلپر کے فزیکل ڈیوائسز پر ایپلیکیشنز چلانے کے لیے سائن کرنے کی اجازت دیتا ہے۔ اسے حاصل کرنے کے لیے مفت Apple ID اکاؤنٹ کافی ہے — Xcode خود بخود Development سرٹیفکیٹ تیار کر سکتا ہے۔ Distribution سرٹیفکیٹ صرف Apple Developer Program ($99/سال) کے ادا شدہ اکاؤنٹس کے لیے جاری کیا جاتا ہے اور App Store میں ایپ بھیجنے، Ad Hoc تقسیم یا Enterprise تقسیم کے لیے ضروری ہے۔ ایک اکاؤنٹ میں متعدد Distribution سرٹیفکیٹس ہو سکتے ہیں — مثال کے طور پر، ہر ایپلیکیشن یا مختلف ٹیموں کے لیے الگ۔
Apple Developer Portal کئی اقسام کے سرٹیفکیٹس فراہم کرتا ہے، ہر ایک کسی مخصوص کام کے لیے ہوتا ہے۔ iOS App Development — ڈیویلپمنٹ مرحلے پر ایپلیکیشنز سائن کرنے کا بنیادی سرٹیفکیٹ۔ Apple Distribution — App Store میں اشاعت کے لیے مرکزی سرٹیفکیٹ۔ Mac Development اور Mac Distribution — macOS ایپلیکیشنز کے لیے مشابہ۔ ہر قسم کے سرٹیفکیٹ کے لیے Apple Developer Portal میں علیحدہ CSR کی ضرورت ہوتی ہے۔
ایک علیحدہ زمرہ push notification کے سرٹیفکیٹس پر مشتمل ہے۔ Apple Push Notification service (APNs) کو یا تو علیحدہ SSL سرٹیفکیٹ یا توثیقی ٹوکن (APNs Auth Key) کی ضرورت ہوتی ہے۔ APNs SSL سرٹیفکیٹس Development (Sandbox) اور Production ماحول کے لیے علیحدہ جاری کیے جاتے ہیں اور کسی مخصوص App ID سے منسلک ہوتے ہیں۔ APNs Auth Key — ایک زیادہ جدید طریقہ: ایک کلید (.p8) اکاؤنٹ کی تمام ایپلیکیشنز کو خدمت فراہم کرتی ہے، جس سے انتظام آسان ہو جاتا ہے۔
| سرٹیفکیٹ کی قسم | مقصد | میعاد |
|---|---|---|
| iOS App Development | ڈیوائسز پر جانچ کے لیے سائننگ | 1 سال |
| Apple Distribution | App Store اور Ad Hoc میں اشاعت | 1 سال |
| Mac Development | ڈیویلپمنٹ کے لیے macOS ایپلیکیشنز سائن کرنا | 1 سال |
| Mac Distribution | Mac App Store میں اشاعت | 1 سال |
| APNs SSL (Sandbox) | ٹیسٹ ماحول میں push notification | 1-3 سال |
| APNs SSL (Production) | پروڈکشن میں push notification | 1-3 سال |
Apple Certificate بنانے کا آغاز macOS پر Keychain Access کے ذریعے Certificate Signing Request (CSR) تیار کرنے سے ہوتا ہے۔ Keychain Access کلیدوں کا ایک جوڑا بناتا ہے: نجی کلید keychain میں رہتی ہے، جبکہ CSR Apple Developer Portal کو بھیجی جاتی ہے۔ شناخت کی تصدیق کے بعد Apple CSR پر دستخط کرتا ہے اور تیار سرٹیفکیٹ (.cer) جاری کرتا ہے جسے ڈاؤن لوڈ کرکے ڈبل کلک سے انسٹال کیا جا سکتا ہے۔
متعدد پروجیکٹس اور ٹیموں کے انتظام کے لیے Apple مختلف Team IDs کے لیے سرٹیفکیٹس بنانے کی اجازت دیتا ہے۔ ایک ڈیویلپر کئی ٹیموں کا رکن ہو سکتا ہے (Apple Developer Program — App Store Connect کے ذریعے) اور ہر ٹیم کے لیے علیحدہ سرٹیفکیٹس جاری کیے جاتے ہیں۔ Xcode Signing & Capabilities کی ترتیبات میں منتخب کردہ ٹیم کے لحاظ سے خود بخود سرٹیفکیٹس تبدیل کرتا ہے۔
سرٹیفکیٹ کی منسوخی ایک اہم عمل ہے: اس سرٹیفکیٹ سے سائن کردہ تمام ایپلیکیشنز نئے آلات پر انسٹال نہیں ہوں گی (پہلے سے انسٹال شدہ کام کرتی رہیں گی)۔ Apple Developer Portal Certificates سیکشن میں کسی بھی سرٹیفکیٹ کو منسوخ کرنے کی اجازت دیتا ہے۔ منسوخی کی وجوہات: نجی کلید سے سمجھوتہ، ڈیویلپر کا ٹیم چھوڑنا، Apple Developer Program کی شرائط کی خلاف ورزی۔ منسوخی کے بعد نیا سرٹیفکیٹ جاری کرنا اور تمام فعال بلڈز کو دوبارہ سائن کرنا ضروری ہے۔
Keychain macOS کا نظامی ذخیرہ ہے جو سرٹیفکیٹس، نجی کلیدوں اور پاس ورڈز کے لیے استعمال ہوتا ہے۔ تمام Apple سرٹیفکیٹس اور ان کی نجی کلیدیں صارف کے لاگ ان keychain (login.keychain) میں محفوظ ہوتی ہیں۔ Xcode کوڈ سائن کرتے وقت Keychain تک رسائی حاصل کرتا ہے، بلڈ کی قسم کے مطابق خود بخود مناسب سرٹیفکیٹ منتخب کرتا ہے۔ دستخط کے مسائل کی تشخیص کے لیے Keychain Access یوٹیلیٹی (فولڈر /Applications/Utilities) استعمال کرنا آسان ہے۔
CI/CD کے لیے سرٹیفکیٹ ایکسپورٹ Keychain Access کے ذریعے کیا جاتا ہے: سرٹیفکیٹ اور اس کی نجی کلید منتخب کریں (انہیں ایک ہی قطار میں کھلا ہونا چاہیے)، دائیں کلک کریں اور Export منتخب کریں۔ فارمیٹ — PKCS12 (.p12)۔ ایکسپورٹ کرتے وقت Keychain فائل کی حفاظت کے لیے پاس ورڈ مانگے گا — یہ پاس ورڈ CI سرور پر درآمد کرتے وقت درکار ہوگا۔ نجی کلید کے بغیر ایکسپورٹ کردہ سرٹیفکیٹ سائننگ کے لیے بیکار ہے — یہ صرف پہلے سے سائن کردہ کوڈ کی تصدیق کے لیے استعمال کیا جا سکتا ہے۔
security یوٹیلیٹی کا استعمال کرتے ہوئے CI ایجنٹ کے keychain میں سرٹیفکیٹ درآمد کرنے کی مثال:
# عارضی keychain بنانا
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain
# .p12 سے سرٹیفکیٹ درآمد کرنا
security import certificate.p12 -k build.keychain \
-P "${P12_PASSWORD}" -T /usr/bin/codesign
# دستخط کی پالیسی ترتیب دینا
security set-key-partition-list -S apple: -s \
-k "temp" build.keychain
Security create-keychain صارف کے keychain سے الگ ایک عارضی keychain بناتا ہے۔ یہ CI کے لیے اہم ہے تاکہ ایجنٹ کے نظامی keychain کو آلودہ نہ کیا جائے۔ -T /usr/bin/codesign پرچم codesign یوٹیلیٹی کو بغیر پاس ورڈ کے کلیدوں تک رسائی کی اجازت دیتا ہے — ورنہ پائپ لائن میں خودکار سائننگ ڈائیلاگ سے رک جائے گی۔ set-key-partition-list کمانڈ macOS کی خودکار کوڈ سائننگ کی ضروریات کے ساتھ مطابقت کے لیے ضروری ہے۔
سب سے عام خرابی — “No signing certificate found” Xcode میں بلڈ کرتے وقت۔ یہ اس وقت ہوتی ہے جب Keychain میں منتخب بلڈ قسم کے مطابق نجی کلید والا سرٹیفکیٹ موجود نہ ہو۔ حل: Keychain Access میں سرٹیفکیٹ کی موجودگی چیک کریں، Apple Developer Portal سے ڈاؤن لوڈ کریں اور انسٹال کریں۔ اگر نجی کلید گم ہو جائے (پرانا کمپیوٹر، سسٹم دوبارہ انسٹال کرنا)، تو پرانا سرٹیفکیٹ منسوخ کرکے نیا جاری کرنا ضروری ہے۔
CI/CD میں “Valid signing certificate not found” کی خرابی اس وقت ہوتی ہے جب ایجنٹ پر Apple کے انٹرمیڈیٹ سرٹیفکیٹس (Apple Worldwide Developer Relations CA) انسٹال نہ ہوں۔ Apple ڈیویلپر سرٹیفکیٹ ڈاؤن لوڈ کرتے وقت انٹرمیڈیٹ سرٹیفکیٹس کو سلسلے میں شامل کرتا ہے، لیکن دستی .p12 ایکسپورٹ میں وہ غائب ہو سکتے ہیں۔ حل — Apple Certificate Authority ویب سائٹ سے انٹرمیڈیٹ سرٹیفکیٹس ڈاؤن لوڈ کریں اور CI ایجنٹ کے keychain میں انسٹال کریں۔
میعاد ختم شدہ سرٹیفکیٹ کا مسئلہ سائن کرتے وقت “This certificate has an invalid issuer” کی خرابی سے ظاہر ہوتا ہے۔ Apple Developer Portal ہر سرٹیفکیٹ کی حیثیت اور میعاد ختم ہونے کی تاریخ دکھاتا ہے۔ اگر ایپلیکیشن میعاد ختم شدہ سرٹیفکیٹ کے ساتھ App Store میں شائع ہو چکی ہے، تو یہ کام کرتی رہتی ہے — App Store تقسیم کے لیے اپنا Apple سرٹیفکیٹ استعمال کرتا ہے۔ تاہم، نیا بلڈ اپ لوڈ کرنے کے لیے ایک فعال Distribution سرٹیفکیٹ درکار ہوگا۔ Fastlane میں cert کمانڈ شامل ہے جو سرٹیفکیٹس کی خودکار تخلیق اور تجدید کرتی ہے۔
اکثر پوچھے گئے سوالات
نہیں، iOS اور macOS کے لیے مختلف اقسام کے سرٹیفکیٹس جاری کیے جاتے ہیں — iOS App Development اور Mac Development۔ Apple Distribution سرٹیفکیٹ بھی پلیٹ فارم کے لحاظ سے تقسیم ہوتا ہے۔ Apple Developer Portal میں سرٹیفکیٹ بناتے وقت ہدف پلیٹ فارم بتانا ضروری ہے — تمام پلیٹ فارمز کے لیے کوئی عالمگیر سرٹیفکیٹ موجود نہیں ہے۔
Apple Developer Portal میں Certificates, Identifiers & Profiles کے ذریعے پرانا سرٹیفکیٹ منسوخ کریں۔ پھر Keychain Access کے ذریعے نیا CSR بنائیں اور نیا سرٹیفکیٹ جاری کریں۔ تمام ایپلیکیشنز جو پرانے سرٹیفکیٹ سے سائن کی گئی تھیں، اگر اپ ڈیٹ جاری کرنا ہو تو دوبارہ سائننگ اور App Store میں دوبارہ اپ لوڈ کی ضرورت ہوں گی۔
ایک Apple Developer Program اکاؤنٹ میں ایک وقت میں زیادہ سے زیادہ دو Distribution سرٹیفکیٹس اور لامحدود Development سرٹیفکیٹس کی اجازت ہے۔ Enterprise اکاؤنٹس کی الگ حدیں ہیں۔ اگر Distribution سرٹیفکیٹس کی حد پہنچ جائے تو نیا بنانے سے پہلے موجودہ میں سے ایک کو منسوخ کرنا ضروری ہے۔
security یوٹیلیٹی استعمال کریں: security find-identity -v -p basic keychain میں تمام سرٹیفکیٹس کو میعاد کی تاریخوں کے ساتھ درج کرے گا۔ کسی مخصوص سرٹیفکیٹ کے لیے اس کا SHA-1 ہیش بتائیں: security find-certificate -c “Developer” -p | openssl x509 -noout -enddate۔
ہاں، سرٹیفکیٹس کسی مخصوص Apple Developer اکاؤنٹ (Team ID) سے منسلک ہوتے ہیں۔ اکاؤنٹ تبدیل کرنے پر پرانے سرٹیفکیٹس نئے Team ID کے لیے نا کارآمد ہو جاتے ہیں۔ Xcode Accounts Preferences میں اکاؤنٹ تبدیل کرنے پر خود بخود نئی ٹیم کے لیے نئے سرٹیفکیٹس بنانے کا تقاضا کرتا ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں