Provisioning Profile ڈیولپر سرٹیفکیٹس، ایپلیکیشن آئیڈینٹیفائر اور iOS ایپس کے کوڈ سائننگ کے لیے اجازت یافتہ آلات کی فہرست کو جوڑتا ہے۔ Apple Developer Documentation, 2026 کے مطابق، فزیکل ڈیوائس پر ایپ چلانے کے لیے پروفائل ضروری ہے — اس کے بغیر Xcode iPhone یا iPad پر بلڈ انسٹال نہیں کر سکے گا۔ اس مضمون میں ہم پروفائلز کی ساخت، اقسام اور تخلیق کے عمل کا جائزہ لیں گے۔
اہم نکات
Provisioning Profile — ایک ڈیجیٹل کنفیگریشن فائل ہے جس کی شکل .mobileprovision (iOS کے لیے) یا .provisionprofile (macOS کے لیے) ہوتی ہے، جسے Apple آلات پر ایپلیکیشنز کی انسٹالیشن اور لانچنگ کو کنٹرول کرنے کے لیے استعمال کرتا ہے۔ پروفائل میں کوڈ سائننگ میٹا ڈیٹا ہوتا ہے، جس کے بغیر فزیکل iPhone، iPad یا Apple Watch پر ایپ چلانا ممکن نہیں — سمیولیٹر کو پروفائل کی ضرورت نہیں، کیونکہ کوڈ حقیقی پروسیسر پر عملدرآمد کے لیے سائن نہیں کیا جاتا۔
پروفائل Apple Developer Portal کے ذریعے جاری کیا جاتا ہے اور اس کی میعاد ہوتی ہے — عام طور پر Development اور Distribution پروفائلز کے لیے ایک سال۔ Apple کی پالیسی کے مطابق، پروفائل خود بخود Apple Developer Program سرٹیفکیٹ سے منسلک ہو جاتا ہے جس کے تحت اسے سائن کیا گیا ہے: اگر سرٹیفکیٹ منسوخ یا میعاد ختم ہو جائے تو پروفائل کام کرنا بند کر دیتا ہے۔
ہر پروفائل میں ایک منفرد UUID ہوتا ہے، جسے Xcode کی چین میں پروفائل کی شناخت کے لیے استعمال کرتا ہے۔ Xcode بلڈ کے وقت خود بخود مناسب پروفائل منتخب کرتا ہے، لیکن ڈیولپر Signing & Capabilities سیٹنگز میں انتخاب کو اوور رائیڈ کر سکتا ہے۔ ایک ڈیوائس پر لامحدود تعداد میں پروفائلز انسٹال کیے جا سکتے ہیں — Apple کا ڈیوائس مینجمنٹ سسٹم (MDM) اسے کارپوریٹ ایپ کی تقسیم کے لیے استعمال کرتا ہے۔
کوڈ سائننگ — پروفائلز کے وجود کی بنیادی وجہ۔ Apple کا تقاضہ ہے کہ iOS ڈیوائس پر چلنے والی ہر ایپ Apple کے جاری کردہ سرٹیفکیٹ سے سائن کی جائے۔ Provisioning Profile ایک ربط کا کام کرتا ہے: یہ تصدیق کرتا ہے کہ ڈیولپر کو ڈیوائس پر ایپ چلانے کا حق ہے۔ Apple Security Guide (2025) کے مطابق، پروفائلز کا طریقہ کار ڈیولپر سرٹیفکیٹ کے سمجھوتہ ہونے کی صورت میں بھی صارفین کے آلات پر میلویئر کی تنصیب کو روکتا ہے۔
پروفائل یہ بھی متعین کرتا ہے کہ ایپ کو کون سی سسٹم سروسز دستیاب ہیں۔ اگر ایپ Push نوٹیفکیشنز استعمال کرتی ہے تو Apple Push Notification service (APNs) کو پروفائل کے اندر درست entitlements کی ضرورت ہوتی ہے۔ اس کے بغیر سرور نوٹیفکیشنز ڈیوائس تک نہیں پہنچیں گے۔ یہی اصول iCloud، App Groups، Wallet، HealthKit اور Apple کے دیگر فریم ورکس کے لیے بھی لاگو ہوتا ہے۔
ڈیولپرز اکثر Provisioning Profile اور Apple Certificate میں الجھ جاتے ہیں۔ سرٹیفکیٹ — ایک ڈیجیٹل دستاویز ہے جو شناخت کی تصدیق کرتا ہے (کون سائن کر رہا ہے)، جبکہ پروفائل — ایک کنفیگریشن ہے (کون سی ایپ، کن آلات پر، کن حقوق کے ساتھ)۔ ایک سرٹیفکیٹ کئی پروفائلز میں استعمال ہو سکتا ہے، اور ایک پروفائل صرف ایک سرٹیفکیٹ سے منسلک ہوتا ہے۔ Apple ہر ایپ اور ہر منظرنامے — Development, Ad Hoc, App Store — کے لیے علیحدہ پروفائل بنانے کی سفارش کرتا ہے۔
ایپ سائننگ کا عمل کئی مراحل پر مشتمل ہوتا ہے جو ترتیب وار انجام پاتے ہیں۔ Xcode ایپ کا بائنری فائل (App Bundle) لیتا ہے، اسے ڈیولپر کی پرائیویٹ کلید سے سائن کرتا ہے، اس میں Provisioning Profile شامل کرتا ہے اور ڈیوائس پر بھیجتا ہے۔ ڈیوائس Apple کی پبلک کلید سے دستخط کی تصدیق کرتی ہے، پروفائل کے UUID کو سسٹم میں بھروسہ مند پروفائلز کی فہرست سے ملانے کے بعد ہی ایپ کو چلاتی ہے۔
جب صارف App Store سے ایپ ڈاؤن لوڈ کرتا ہے تو طریقہ کار مختلف ہوتا ہے۔ App Store Connect ایپ کو Apple کے اپنے Distribution سرٹیفکیٹ سے دوبارہ سائن کرتا ہے، ڈیولپر کے پروفائل کو Store-پروفائل سے تبدیل کر دیتا ہے۔ اس کا مطلب ہے کہ App Store کے ذریعے شائع ہونے والی ایپ تکنیکی طور پر Apple کے ذریعے سائن کی جاتی ہے نہ کہ ڈیولپر کے ذریعے — اگرچہ ڈیولپر کے اصل دستخط کی تصدیق App Store Connect میں بلڈ اپ لوڈ کرتے وقت کی جاتی ہے۔
Ad Hoc تقسیم کے لیے پروفائل مخصوص UDIDs آلات کو رجسٹر کرتا ہے جن پر چلانے کی اجازت ہے۔ مفت Apple Developer Program اکاؤنٹ ٹیسٹنگ کے لیے سال میں 100 آلات تک محدود کرتا ہے۔ Enterprise پروفائلز (تنظیم کے اندرونی تقسیم کے لیے) آلات کی کوئی حد نہیں رکھتے، لیکن ان کے لیے فعال Apple Developer Enterprise Program سبسکرپشن درکار ہے جس کی قیمت $299 سالانہ ہے۔
میعاد Provisioning Profile کی تخلیق کے وقت سے ایک سال ہوتی ہے۔ میعاد ختم ہونے سے 30 دن پہلے Apple Xcode اور Developer Portal کے ذریعے ڈیولپر کو push نوٹیفکیشن بھیجنا شروع کر دیتا ہے۔ اگر پروفائل کی میعاد ختم ہو جائے تو ڈیوائس پر ایپ کام کرتی رہے گی (اگر پہلے سے انسٹال ہے)، لیکن اس پروفائل کے ساتھ نیا بلڈ انسٹال نہیں کیا جا سکے گا۔ Xcode میعاد ختم شدہ پروفائل کے ساتھ بلڈ کرنے کی کوشش پر کوڈ سائننگ کی خرابی دیتا ہے جس کا کوڈ -402620394 ہے۔ Apple Xcode Accounts Preferences کے ذریعے پروفائلز کی خودکار تجدید سیٹ کرنے کی سفارش کرتا ہے — اس صورت میں Xcode میعاد ختم ہونے سے 24 گھنٹے پہلے پروفائل کو اپ ڈیٹ کر دیتا ہے۔
Apple چار اہم اقسام کے Provisioning Profiles فراہم کرتا ہے، ہر ایک ایپ کے لائف سائیکل کے مخصوص مرحلے کے لیے ڈیزائن کیا گیا ہے۔ Development پروفائل Apple Developer Portal میں شامل کردہ فزیکل آلات پر ایپ چلانے کی اجازت دیتا ہے اور ڈیولپمنٹ اور QA ٹیسٹنگ کے مرحلے پر استعمال ہوتا ہے۔ Development پروفائل بنانے کے لیے مفت Apple ڈیولپر اکاؤنٹ کافی ہے۔
Ad Hoc پروفائل App Store کے استعمال کے بغیر محدود ٹیسٹرز کے درمیان ایپ کی تقسیم کے لیے ہے۔ پروفائل UDID کے ذریعے 100 آلات تک رجسٹر کرتا ہے، اور ایپ براہ راست iTunes، Apple Configurator یا MDM حل کے ذریعے انسٹال کی جا سکتی ہے۔ Ad Hoc بلڈز کی میعاد 12 ماہ ہوتی ہے اور انہیں Apple کے جائزے کی ضرورت نہیں ہوتی۔
App Store پروفائل صرف App Store میں ایپ شائع کرنے کے لیے استعمال ہوتا ہے اور اس میں آلات کی فہرست نہیں ہوتی — Apple بلڈ کی منظوری کے بعد خود تقسیم کا انتظام کرتا ہے۔ App Store Connect میں آرکائیو اپ لوڈ کرتے وقت Xcode خود بخود App Store پروفائل استعمال کرتا ہے اگر یہ سسٹم میں انسٹال ہو۔ Enterprise پروفائل Apple Developer Enterprise Program والی تنظیموں کے لیے ہے اور کمپنی کے اندر آلات کی کسی حد کے بغیر اور Apple کے جائزے کے بغیر ایپ تقسیم کرنے کی اجازت دیتا ہے۔
| پروفائل کی قسم | مقصد | آلات | سبسکرپشن کی قیمت |
|---|---|---|---|
| Development | ڈیولپمنٹ اور ٹیسٹنگ | 100 UDID تک | مفت / $99 سالانہ |
| Ad Hoc | ٹیسٹرز کو تقسیم | 100 UDID تک | $99 سالانہ |
| App Store | App Store میں اشاعت | کوئی بھی (Apple کے ذریعے) | $99 سالانہ |
| Enterprise | اندرونی تقسیم | لا محدود | $299 سالانہ |
Provisioning Profile ایک DER-فارمیٹ فائل ہے جو Apple کے ذریعے سائن کی جاتی ہے، جس کے مواد کو کمانڈ لائن کے ذریعے دیکھا جا سکتا ہے۔ Security framework macOS .mobileprovision کو پڑھنے کے قابل XML plist میں ڈی کوڈ کرنے کی اجازت دیتا ہے۔ پروفائل کے اندر شامل ہیں: پروفائل کا UUID، App ID (ٹیم کا پریفکس + Bundle Identifier)، سرٹیفکیٹس کی فہرست، اجازت یافتہ آلات کی فہرست (صرف Development اور Ad Hoc کے لیے)، entitlements اور میعاد کی تاریخ۔
App ID — ایپ کا منفرد شناخت کنندہ جو Team ID (10 حروف، Apple کے ذریعے تفویض کردہ) اور Bundle Identifier (مثلاً com.example.myapp) پر مشتمل ہوتا ہے۔ App ID explicit (Bundle Identifier سے مکمل مماثلت) یا wildcard (کئی ایپس کے لیے *.example.com پیٹرن) ہو سکتا ہے۔ Apple Push نوٹیفکیشنز یا iCloud استعمال کرنے والی ایپس کے لیے wildcard استعمال کرنے کی سفارش نہیں کرتا — ان سروسز کو explicit App ID درکار ہے۔
Entitlements — پروفائل کے اندر XML بلاک ہے جو سسٹم ریسورسز تک ایپ کے رسائی کے حقوق متعین کرتا ہے۔ عام entitlements میں شامل ہیں: aps-environment (Push نوٹیفکیشنز)، com.apple.developer.icloud-services (iCloud)، com.apple.security.application-groups (Widget اور Share Extension کے لیے App Groups)۔ Apple Xcode میں شامل کردہ Capabilities کی بنیاد پر خود بخود پروفائل میں entitlements شامل کرتا ہے۔ پروفائل میں entitlements اور کوڈ میں درخواست کردہ کے درمیان کوئی بھی تضاد سائننگ کی خرابی کا سبب بنتا ہے۔
پروفائل بنانے کے دو طریقے ہیں: Apple Developer Portal کے ویب انٹرفیس کے ذریعے یا Xcode کے ذریعے خود بخود۔ عام پروجیکٹ کے لیے Xcode Automatically manage signing آپشن فعال ہونے پر خود بخود پروفائلز کا انتظام کرتا ہے۔ Xcode Apple Developer Portal کے ساتھ ہم آہنگی کرتے ہوئے سیکنڈوں میں سرٹیفکیٹ، پروفائل اور App ID بناتا ہے۔ تاہم CI/CD پائپ لائنز کے لیے دستی انتظام درکار ہے۔
Apple Developer Portal میں دستی طور پر پروفائل بنانے کے لیے: Certificates, Identifiers & Profiles سیکشن میں جائیں، Profiles منتخب کریں اور "+" دبائیں۔ پھر پروفائل کی قسم (Development, Ad Hoc, App Store یا Enterprise) منتخب کریں، رجسٹرڈ App IDs میں سے App ID منتخب کریں، ڈیولپر سرٹیفکیٹ منتخب کریں اور (Development اور Ad Hoc کے لیے) آلات منتخب کریں۔ بننے کے بعد پروفائل .mobileprovision فارمیٹ میں ڈاؤن لوڈ ہوتا ہے اور Xcode میں ڈبل کلک سے انسٹال ہوتا ہے۔
CI/CD سرورز کو خاص طریقہ کار درکار ہے: پروفائل اور سرٹیفکیٹ کو محفوظ ذخیرہ (مثلاً GitHub Actions کے سیکرٹس) میں رکھنا چاہیے۔ بلڈ کے وقت پروفائل ایجنٹ پر لوڈ کیا جاتا ہے، ~/Library/MobileDevice/Provisioning Profiles فولڈر میں رکھا جاتا ہے، اور سرٹیفکیٹ کی چین میں درآمد کیا جاتا ہے۔ Fastlane — سائننگ آٹومیشن کا مقبول ٹول — match کمانڈ فراہم کرتا ہے جو ڈیولپرز کے درمیان انکرپٹڈ git ریپوزٹری کے ذریعے پروفائلز اور سرٹیفکیٹس کو ہم آہنگ کرتا ہے۔
کوڈ سائننگ کے مسائل کی تشخیص کے لیے .mobileprovision کو ڈی کوڈ کر کے اس کا مواد چیک کیا جا سکتا ہے۔ نیچے دی گئی کمانڈ پروفائل سے XML plist نکالتی ہے اور پڑھنے کے قابل فارمیٹ میں محفوظ کرتی ہے:
# .mobileprovision کو XML میں ڈی کوڈ کرنا
security cms -D -i "path/to/embedded.mobileprovision" \
-o "profile.plist"
# پروفائل کی میعاد ختم ہونے کی جانچ
plist -convert xml1 profile.plist -o -
grep -A 1 "ExpirationDate" profile.plist
Security یوٹیلیٹی macOS کمانڈ لائن ٹولز کا حصہ ہے اور CMS-سائنڈ پروفائل فائل کو ڈی کوڈ کرتی ہے۔ فلیگ -D ڈی کوڈنگ کو ظاہر کرتا ہے، -i انپٹ فائل کے لیے ہے۔ ڈی کوڈنگ کے بعد plist یوٹیلیٹی بائنری plist کو XML میں تبدیل کرتی ہے، اور grep میعاد ختم ہونے کی تاریخ نکالتا ہے۔ یہ طریقہ CI/CD میں ریلیز بلڈ سے پہلے پروفائل کی میعاد چیک کرنے کے لیے مفید ہے۔
سب سے عام خرابی — "No matching provisioning profiles found" Xcode میں بلڈ کرتے وقت۔ یہ اس وقت ہوتی ہے جب Xcode بلڈ کنفیگریشن کے مطابق پروفائل تلاش نہیں کر پاتا: Bundle Identifier پروفائل میں App ID سے مماثل نہیں، سرٹیفکیٹ کی چین میں انسٹال نہیں یا پروفائل کی میعاد ختم ہے۔ حل — Signing & Capabilities سیٹنگز چیک کریں اور اگر ضرورت ہو تو Automatically manage signing پر سوئچ کریں۔
خرابی "Provisioning profile doesn't include the selected device" اس وقت ظاہر ہوتی ہے جب Development یا Ad Hoc بلڈ کو ایسی ڈیوائس پر چلانے کی کوشش کی جائے جس کا UDID پروفائل میں شامل نہ ہو۔ Apple Developer Portal موجودہ پروفائل میں ڈیوائس شامل کرنے کی اجازت دیتا ہے — اس کے بعد پروفائل دوبارہ ڈاؤن لوڈ اور انسٹال کرنا ہو گا۔ Xcode خودکار سائننگ مینجمنٹ کے ساتھ منسلک ڈیوائس کو خود بخود پروفائل میں شامل کرتا ہے۔
Entitlements کا مسئلہ "The executable was signed with invalid entitlements" خرابی کے ساتھ App Store Connect پر اپ لوڈ کرتے وقت ظاہر ہوتا ہے۔ وجہ — پروفائل میں entitlements اور پروجیکٹ کی .entitlements فائل میں عدم مماثلت۔ Apple کا تقاضہ ہے کہ پروفائل میں حقوق کا سیٹ ایپ کے درخواست کردہ حقوق کا سپر سیٹ ہو۔ حل — Xcode ٹارگٹ میں Capabilities چیک کریں اور یقینی بنائیں کہ تمام فعال سروسز کے پروفائل میں متعلقہ entitlements موجود ہیں۔ Fastlane میں produce کمانڈ شامل ہے جو App ID اور پروفائلز کو موجودہ entitlements کے ساتھ ہم آہنگ کرتی ہے۔
اکثر پوچھے گئے سوالات
ہاں، اگر پروفائل میں App ID wildcard-آئیڈینٹیفائر com.example.* کی شکل میں استعمال کرتا ہے۔ تاہم wildcard-پروفائلز Push نوٹیفکیشنز، iCloud، Game Center اور App Groups کو سپورٹ نہیں کرتے۔ Apple تجویز کرتا ہے کہ توسیعی Capabilities استعمال کرنے والی ہر ایپ کے لیے علیحدہ explicit پروفائل بنایا جائے۔
App Store کے ذریعے ڈاؤن لوڈ کی گئی ایپ Apple کے Store-پروفائل کا استعمال کرتی ہے جو ڈیولپر کے پروفائل پر منحصر نہیں ہوتا۔ صارفین ایپ ڈاؤن لوڈ اور چلاتے رہیں گے۔ میعاد ختم شدہ پروفائل صرف App Store Connect میں نیا بلڈ اپ لوڈ کرنے میں رکاوٹ بنتا ہے — Apple کا تقاضہ ہے کہ Distribution پروفائل جمع کروانے کے وقت فعال ہو۔
پروفائل کو نئے کمپیوٹر پر ~/Library/MobileDevice/Provisioning Profiles فولڈر میں کاپی کیا جا سکتا ہے۔ تاہم پروفائل سرٹیفکیٹ سے منسلک ہوتا ہے جس کی پرائیویٹ کلید کی چین میں ہوتی ہے۔ Keychain Access کے ذریعے سرٹیفکیٹ کو پرائیویٹ کلید کے ساتھ ایکسپورٹ کرنا اور نئے ڈیوائس پر درآمد کرنا بھی ضروری ہے۔
کمپیوٹر پر پروفائلز کی تعداد کی کوئی حد نہیں۔ پروفائلز ~/Library/MobileDevice/Provisioning Profiles فولڈر میں UUID کے مطابق محفوظ ہوتے ہیں۔ Xcode App ID اور بلڈ کی قسم کے مطابق خود بخود مناسب پروفائل منتخب کرتا ہے۔ انتظام کو آسان بنانے کے لیے Xcode Accounts Preferences کے ذریعے غیر استعمال شدہ پروفائلز کو ہٹانے کی سفارش کی جاتی ہے۔
Signing Certificate ڈیولپر کی شناخت کی تصدیق کرتا ہے — یہ Apple کے جاری کردہ کرپٹوگرافک کلید ہے۔ Provisioning Profile ایک کنفیگریشن فائل ہے جو بتاتی ہے کہ کون سی ایپ (App ID) کس سرٹیفکیٹ کے تحت اور کن آلات پر چلائی جا سکتی ہے۔ پروفائل ہمیشہ مخصوص سرٹیفکیٹ کا حوالہ دیتا ہے، لیکن اسے تبدیل نہیں کرتا۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں