प्रोविज़निंग प्रोफ़ाइल iOS ऐप्स के कोड साइनिंग के लिए डेवलपर प्रमाणपत्र, ऐप आइडेंटिफ़ायर और अनुमत डिवाइसों की सूची को जोड़ती है। Apple Developer Documentation, 2026 के अनुसार, भौतिक डिवाइस पर किसी भी ऐप को चलाने के लिए प्रोफ़ाइल आवश्यक है — इसके बिना Xcode iPhone या iPad पर बिल्ड इंस्टॉल नहीं कर सकता। इस लेख में हम प्रोफ़ाइल की संरचना, प्रकार और निर्माण प्रक्रिया पर चर्चा करेंगे।
मुख्य बातें
प्रोविज़निंग प्रोफ़ाइल एक डिजिटल कॉन्फ़िगरेशन फ़ाइल है जो .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 द्वारा जारी प्रमाणपत्र से हस्ताक्षरित हो। प्रोविज़निंग प्रोफ़ाइल एक कड़ी के रूप में कार्य करती है: यह पुष्टि करती है कि डेवलपर को उस डिवाइस पर ऐप चलाने का अधिकार है। Apple Security Guide (2025) के अनुसार, प्रोफ़ाइल तंत्र डेवलपर प्रमाणपत्र से समझौता होने पर भी उपयोगकर्ता डिवाइसों पर मैलवेयर इंस्टॉलेशन को रोकता है।
प्रोफ़ाइल यह भी निर्धारित करती है कि ऐप के लिए कौन सी सिस्टम सेवाएँ उपलब्ध हैं। यदि ऐप Push सूचनाओं का उपयोग करता है, तो Apple Push Notification service (APNs) को प्रोफ़ाइल के अंदर सही entitlements की आवश्यकता होती है। इसके बिना, सर्वर सूचनाएँ डिवाइस पर वितरित नहीं की जाएँगी। यही नियम iCloud, App Groups, Wallet, HealthKit और अन्य Apple फ्रेमवर्क पर लागू होता है।
डेवलपर अक्सर प्रोविज़निंग प्रोफ़ाइल और Apple प्रमाणपत्र को भ्रमित करते हैं। प्रमाणपत्र एक डिजिटल दस्तावेज़ है जो पहचान की पुष्टि करता है (कौन हस्ताक्षर करता है), जबकि प्रोफ़ाइल एक कॉन्फ़िगरेशन है (कौन सा ऐप, किन डिवाइसों पर, किन अनुमतियों के साथ)। एक प्रमाणपत्र का उपयोग कई प्रोफ़ाइलों में किया जा सकता है, और एक प्रोफ़ाइल बिल्कुल एक प्रमाणपत्र से बंधी होती है। Apple प्रत्येक ऐप और प्रत्येक परिदृश्य — Development, Ad Hoc, App Store के लिए अलग प्रोफ़ाइल बनाने की सिफारिश करता है।
ऐप हस्ताक्षर प्रक्रिया में कई अनुक्रमिक चरण होते हैं। Xcode ऐप बाइनरी (App Bundle) लेता है, इसे डेवलपर की निजी कुंजी से हस्ताक्षरित करता है, इसमें प्रोविज़निंग प्रोफ़ाइल एम्बेड करता है और डिवाइस पर भेजता है। डिवाइस Apple की सार्वजनिक कुंजी से हस्ताक्षर सत्यापित करता है, प्रोफ़ाइल UUID की तुलना सिस्टम में विश्वसनीय प्रोफ़ाइलों की सूची से करता है और सभी जाँचों के सफल होने पर ही ऐप लॉन्च करता है।
जब कोई उपयोगकर्ता App Store से ऐप डाउनलोड करता है, तो तंत्र भिन्न होता है। App Store Connect ऐप को Apple के स्वयं के Distribution प्रमाणपत्र से पुनः हस्ताक्षरित करता है, डेवलपर की प्रोफ़ाइल को Store प्रोफ़ाइल से बदल देता है। इसका मतलब है कि App Store के माध्यम से प्रकाशित ऐप तकनीकी रूप से Apple द्वारा हस्ताक्षरित है, डेवलपर द्वारा नहीं — हालाँकि App Store Connect में बिल्ड अपलोड करते समय मूल डेवलपर हस्ताक्षर सत्यापित किया जाता है।
Ad Hoc वितरण के लिए, प्रोफ़ाइल विशिष्ट डिवाइस UDIDs पंजीकृत करती है जिन पर ऐप चलाने की अनुमति है। एक मुफ्त Apple Developer Program खाता परीक्षण को प्रति वर्ष 100 डिवाइसों तक सीमित करता है। एंटरप्राइज़ प्रोफ़ाइल (संगठन के भीतर आंतरिक वितरण के लिए) की कोई डिवाइस सीमा नहीं है लेकिन इसके लिए $299 प्रति वर्ष की सक्रिय Apple Developer Enterprise Program सदस्यता आवश्यक है।
प्रोविज़निंग प्रोफ़ाइल की वैधता अवधि निर्माण से एक वर्ष है। समाप्ति से 30 दिन पहले, Apple Xcode और Developer Portal के माध्यम से डेवलपर को push सूचनाएँ भेजना शुरू करता है। यदि प्रोफ़ाइल समाप्त हो जाती है, तो पहले से इंस्टॉल किया गया ऐप काम करता रहता है, लेकिन उस प्रोफ़ाइल के साथ नया बिल्ड इंस्टॉल नहीं किया जा सकता। Xcode समाप्त प्रोफ़ाइल के साथ बिल्ड करने का प्रयास करने पर कोड -402620394 के साथ कोड साइनिंग त्रुटि देता है। Apple Xcode Accounts Preferences के माध्यम से स्वचालित प्रोफ़ाइल नवीनीकरण सेट करने की सिफारिश करता है — तब Xcode समाप्ति से 24 घंटे पहले प्रोफ़ाइल को नवीनीकृत करता है।
Apple चार मुख्य प्रकार की प्रोविज़निंग प्रोफ़ाइल प्रदान करता है, प्रत्येक को ऐप जीवनचक्र के एक विशिष्ट चरण के लिए डिज़ाइन किया गया है। 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 प्रति वर्ष |
प्रोविज़निंग प्रोफ़ाइल Apple द्वारा हस्ताक्षरित DER प्रारूप में एक फ़ाइल है, जिसकी सामग्री को कमांड लाइन के माध्यम से देखा जा सकता है। macOS पर Security framework .mobileprovision को पढ़ने योग्य XML plist में डीकोड करने की अनुमति देता है। प्रोफ़ाइल के अंदर होते हैं: प्रोफ़ाइल UUID, App ID (टीम उपसर्ग + Bundle Identifier), प्रमाणपत्र सूची, अनुमत डिवाइसों की सूची (केवल Development और Ad Hoc के लिए), entitlements और समाप्ति तिथि।
App ID एक अद्वितीय ऐप पहचानकर्ता है जिसमें Team ID (Apple द्वारा निर्दिष्ट 10 वर्ण) और Bundle Identifier (जैसे com.example.myapp) शामिल हैं। App ID स्पष्ट (Bundle Identifier से सटीक मिलान) या wildcard (कई ऐप्स के लिए पैटर्न *.example.com) हो सकता है। Apple उन ऐप्स के लिए wildcard का उपयोग करने की अनुशंसा नहीं करता जो Push सूचनाओं या iCloud का उपयोग करते हैं — इन सेवाओं के लिए स्पष्ट 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 और कोड में अनुरोधित entitlements के बीच कोई भी बेमेल हस्ताक्षर त्रुटि का कारण बनता है।
प्रोफ़ाइल बनाना दो तरीकों से संभव है: Apple Developer Portal वेब इंटरफ़ेस के माध्यम से या स्वचालित रूप से Xcode के माध्यम से। एक सामान्य प्रोजेक्ट के लिए, Automatically manage signing विकल्प सक्षम होने पर Xcode स्वचालित रूप से प्रोफ़ाइलों का प्रबंधन करता है। Xcode Apple Developer Portal के साथ सिंक करते हुए सेकंडों में प्रमाणपत्र, प्रोफ़ाइल और App ID बनाता है। हालाँकि, CI/CD पाइपलाइनों के लिए मैन्युअल प्रबंधन आवश्यक है।
Apple Developer Portal में मैन्युअल रूप से प्रोफ़ाइल बनाने के लिए: Certificates, Identifiers & Profiles पर जाएँ, Profiles चुनें और "+" दबाएँ। फिर प्रोफ़ाइल प्रकार (Development, Ad Hoc, App Store या Enterprise) चुनें, पंजीकृत सूची से App ID चुनें, डेवलपर प्रमाणपत्र चुनें और (Development और Ad Hoc के लिए) डिवाइस चुनें। निर्माण के बाद, प्रोफ़ाइल .mobileprovision प्रारूप में डाउनलोड होती है और Xcode में डबल-क्लिक करके इंस्टॉल की जाती है।
CI/CD सर्वर को एक विशेष दृष्टिकोण की आवश्यकता होती है: प्रोफ़ाइल और प्रमाणपत्र को एक सुरक्षित रिपॉज़िटरी (जैसे GitHub Actions secrets) में संग्रहीत किया जाना चाहिए। बिल्डिंग के दौरान, प्रोफ़ाइल एजेंट पर लोड की जाती है, ~/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 Command Line Tools से CMS-हस्ताक्षरित प्रोफ़ाइल फ़ाइल को डीकोड करती है। -D फ़्लैग का अर्थ है डिकोडिंग, -i इनपुट फ़ाइल निर्दिष्ट करता है। डिकोडिंग के बाद, plist उपयोगिता बाइनरी plist को XML में परिवर्तित करती है, और grep समाप्ति तिथि निकालता है। रिलीज़ बनाने से पहले प्रोफ़ाइल की समाप्ति सत्यापित करने के लिए यह विधि CI/CD में उपयोगी है।
सबसे आम त्रुटि Xcode में बिल्ड करते समय "No matching provisioning profiles found" है। यह तब होती है जब 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 की समस्या App Store Connect पर अपलोड करते समय "The executable was signed with invalid entitlements" त्रुटि के रूप में प्रकट होती है। कारण — प्रोफ़ाइल में entitlements और प्रोजेक्ट की .entitlements फ़ाइल के बीच बेमेल। Apple आवश्यकता है कि प्रोफ़ाइल में अधिकारों का सेट ऐप द्वारा अनुरोधित अधिकारों का सुपरसेट हो। समाधान — Xcode टार्गेट में Capabilities की जाँच करें और सुनिश्चित करें कि सभी सक्षम सेवाओं के लिए प्रोफ़ाइल में संबंधित entitlements हों। Fastlane में produce कमांड शामिल है, जो App ID और प्रोफ़ाइलों को वर्तमान entitlements के साथ सिंक्रोनाइज़ करता है।
अक्सर पूछे जाने वाले प्रश्न
हाँ, यदि प्रोफ़ाइल में App ID com.example.* प्रकार के wildcard पहचानकर्ता का उपयोग करता है। हालाँकि, wildcard प्रोफ़ाइल Push सूचनाओं, iCloud, Game Center और App Groups का समर्थन नहीं करती हैं। Apple विस्तारित Capabilities का उपयोग करने वाले प्रत्येक ऐप के लिए अलग स्पष्ट प्रोफ़ाइल बनाने की सिफारिश करता है।
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 के माध्यम से अप्रयुक्त प्रोफ़ाइलों को हटाने की अनुशंसा की जाती है।
साइनिंग प्रमाणपत्र डेवलपर की पहचान की पुष्टि करता है — यह Apple द्वारा जारी एक क्रिप्टोग्राफ़िक कुंजी है। प्रोविज़निंग प्रोफ़ाइल एक कॉन्फ़िगरेशन फ़ाइल है जो निर्दिष्ट करती है कि कौन सा ऐप (App ID) किस प्रमाणपत्र के तहत और किन डिवाइसों पर लॉन्च किया जा सकता है। प्रोफ़ाइल हमेशा एक विशिष्ट प्रमाणपत्र को संदर्भित करती है लेकिन उसे प्रतिस्थापित नहीं करती।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें