MacOS ऐप के अंदर क्या है, और यह क्या करता है? macOS ऐप मोनोलिथिक फाइलों की तरह दिखते हैं, लेकिन वे फैंसी आइकन वाले फोल्डर की तरह होते हैं जिन्हें बंडल कहा जाता है। उन बंडलों को खोलें, और आपको एप्लिकेशन द्वारा आवश्यक फाइलों की एक सरणी मिलेगी। यह सब क्या करता है? इन बंडलों की समझ डेवलपर्स, प्रशासकों, गेम मॉडर्स, हैकिंटोश बिल्डरों, सुरक्षा से संबंधित उपयोगकर्ताओं और किसी ऐप की समस्या निवारण के लिए उपयोगी है।
macOS ऐप बंडल क्या हैं?
जैसा कि Apple द्वारा परिभाषित किया गया है, एक बंडल "एक मानकीकृत पदानुक्रमित संरचना वाली एक निर्देशिका है जिसमें निष्पादन योग्य कोड और उस कोड द्वारा उपयोग किए जाने वाले संसाधन होते हैं।" दूसरे नाम से, वह एक एप्लिकेशन है। एक विशिष्ट संरचना और प्रारूप है जिसका डेवलपर्स द्वारा पालन किया जाना चाहिए ताकि यह सुनिश्चित हो सके कि उनका ऐप ठीक से चलता है। उन सम्मेलनों को तोड़ें, और आप संभवतः अपना ऐप तोड़ देंगे। अगर कुछ ठीक से काम नहीं कर रहा है, तो एप्लिकेशन बंडल एक उपयोगी समस्या निवारण स्थान हो सकता है।
ऐप्स एकमात्र प्रकार के बंडल नहीं हैं। बंडलों का उपयोग .framework, .bundle, .plugin, और .kext जैसे एक्सटेंशन वाली फ़ाइलों के लिए भी किया जाता है। जब तक आप बंडल के पैकेज को खोलकर उनमें प्रवेश नहीं करते, तब तक बंडलों को Finder में एकात्मक ऑब्जेक्ट के रूप में प्रदर्शित किया जाता है।
एप्लिकेशन बंडल खोलना
निर्देशिकाओं के विपरीत, एप्लिकेशन बंडलों को खोलने के लिए एक छोटे से नृत्य की आवश्यकता होती है।
1. “/Applications/” में एप्लिकेशन के आइकन पर राइट-क्लिक करें।
2. संदर्भ मेनू में, "पैकेज सामग्री दिखाएं" पर क्लिक करें।
3. ऐप की प्राथमिक निर्देशिका में प्रवेश करने के लिए "सामग्री" फ़ोल्डर पर डबल-क्लिक करें।
मूल macOS ऐप बंडल एनाटॉमी
बंडल के "सामग्री" फ़ोल्डर में, आपको कई फ़ाइलें मिलेंगी। सभी macOS ऐप्स में निम्न फ़ाइलें कम से कम होनी चाहिए:
- Info.plist :एप्लिकेशन पहचानकर्ता स्ट्रिंग के साथ अनिवार्य कॉन्फ़िगरेशन विवरण शामिल हैं।
- MacOS/निष्पादन योग्य :वह कोड जो तब चलता है जब उपयोगकर्ता "MacOS" फ़ोल्डर के अंदर पाए जाने वाले ऐप को लॉन्च करता है। निष्पादन योग्य के बिना, आपके पास बहुत अधिक बंडल नहीं है।
आपको कुछ सामान्य फ़ोल्डरों में अतिरिक्त फ़ाइलों की भरमार मिलने की भी संभावना है:
- प्लगइन्स :विस्तार-जैसे मिनी-निष्पादन योग्य जो कोर निष्पादन योग्य की कार्यक्षमता का विस्तार करते हैं। स्थिर संसाधनों के विपरीत, प्लगइन्स गतिशील रूप से एप्लिकेशन में कार्यक्षमता जोड़ते हैं।
- संसाधन :उन फ़ाइलों का समर्थन करें जिन पर आपका एप्लिकेशन निर्भर करता है। इस फ़ोल्डर में चित्र, चिह्न, ध्वनियाँ, फ़ॉन्ट, निब फ़ाइलें, स्थानीयकरण और डेटा स्टोर शामिल हैं, लेकिन इन्हीं तक सीमित नहीं है। प्लगइन्स के विपरीत, ये संसाधन निष्पादन योग्य की मुख्य कार्यक्षमता का समर्थन करते हैं।
- ढांचे :प्लगइन्स की तरह, आपके ऐप के लिए आवश्यक उच्च-स्तरीय फ्रेमवर्क स्वयं के बंडल हैं। हालांकि, वे एक पदानुक्रमित भिन्न संरचना का उपयोग करते हैं।
- कोड सिग्नेचर :एक संरचित प्लिस्ट फ़ाइल जिसका उपयोग एप्लिकेशन के प्रत्येक भाग के लिए कोड हस्ताक्षर प्रदान करने के लिए किया जाता है। ये हस्ताक्षर ऐप और macOS को एप्लिकेशन की अखंडता को सत्यापित करने देते हैं और ऐप अपहरण के हमलों को रोकते हैं।
आईओएस ऐप बंडल एक ही मूल संरचना और फ़ाइल प्रारूप का उपयोग करते हैं, हालांकि वे अक्सर एक अलग पदानुक्रम में दिखाई देते हैं।
Info.plist
Info.plist आपके एप्लिकेशन की मूल जनसांख्यिकी का प्राथमिक डाइजेस्ट है। इसमें आपका बंडल पहचानकर्ता शामिल है, जो अन्य सभी बंडल पहचानकर्ताओं से अद्वितीय होना चाहिए। इस प्रक्रिया को सरल बनाने के लिए, Apple रिवर्स डोमेन नोटेशन की सिफारिश करता है, जैसे "com.apple.siri.launcher" या "org.videolan.vlc।" Info.plist के बारे में अधिक जानने के लिए, Apple की कुंजियों की सूची देखें और विचार करें कि प्रत्येक कुंजी क्या करती है।
इस फ़ाइल में ऐप आइकन, ऐप का नाम, संस्करण संख्या, कॉपीराइट डेटा, त्रुटि रिपोर्टिंग के लिए लिंक और डिफ़ॉल्ट भाषा जैसी बुनियादी ऐप जानकारी भी शामिल है। परंपरा और प्रणाली के नियमों के अनुसार, "जानकारी" में "I" को हमेशा बड़े अक्षरों में लिखा जाता है।
निष्पादन योग्य
यह वह जगह है जहां आपके आवेदन का प्राथमिक कोड रहता है। जब एप्लिकेशन खोला जाता है, तो macOS बंडल की "MacOS" निर्देशिका में पाए जाने वाले निष्पादन योग्य में निहित कोड को चलाएगा। लगभग हर एप्लिकेशन में केवल एक निष्पादन योग्य होगा, हालांकि सहायक निष्पादन योग्य के लिए दो या अधिक का उपयोग किया जा सकता है। यह फ़ाइल आमतौर पर सॉफ़्टवेयर के डेवलपर को छोड़कर किसी के लिए भी रुचिकर नहीं होती है क्योंकि इसे उपयोगकर्ता द्वारा आसानी से देखा या संपादित नहीं किया जा सकता है।
संसाधन और अतिरिक्त सहायता फ़ाइलें
आपके आवेदन के लिए आवश्यक कुछ भी इसके बंडल में शामिल होना चाहिए। यदि यह निष्पादन योग्य का हिस्सा नहीं है, तो इसे बंडल के भीतर संसाधन फ़ोल्डरों में से एक में जाना चाहिए। इन संसाधनों को प्राथमिक "संसाधन" फ़ोल्डर में संग्रहीत किया जा सकता है या विभिन्न फ़ोल्डरों में उप-विभाजित किया जा सकता है।
- संदेह में, अधिकांश संसाधन "संसाधन" फ़ोल्डर में चले जाते हैं।
- फ्रेमवर्क "फ्रेमवर्क" फ़ोल्डर में जाते हैं।
- प्लगइन्स "प्लगइन्स" फ़ोल्डर में जाते हैं।
- स्थानीयकरण फ़ाइलें (.lproj निर्देशिका) संसाधन फ़ोल्डर में जाती हैं।
उन आवश्यकताओं के बाहर, Apple कई सुझाव और परंपराएँ प्रदान करता है जिनका पालन किया जाना चाहिए जब तक कि आपके पास अन्यथा करने के लिए कोई रक्षात्मक कारण न हो।
निष्कर्ष
macOS एप्लिकेशन बंडल के भीतर समाहित होते हैं, जो एप्लिकेशन फ़ाइलों के लिए पदानुक्रमित कंटेनर होते हैं। प्रत्येक एप्लिकेशन के लिए मूल संरचना समान है। उपयोगकर्ता के लिए सबसे दिलचस्प फ़ाइलें ऐप के बंडल के अंदर संसाधन फ़ोल्डर में पाई जाती हैं।