Apple iOS पर केवल स्टेटिक फ्रेमवर्क की अनुमति क्यों देता है?


11

स्पष्ट रूप से Apple के पास iOS के लिए गतिशील रूप से भरी हुई लाइब्रेरी (फ्रेमवर्क के रूप में जाना जाता है) बनाने की क्षमता है, क्योंकि वे XCode (जैसे UIKit) के साथ कई जहाज करते हैं। ऐप डेवलपर्स के पास केवल स्टैटिक लाइब्रेरी बनाने की क्षमता है, या सबसे अच्छा, यह सोचकर एक्सकोड को ट्रिक में लोड कर रहा है जब यह वास्तव में एक स्टैटिक लाइब्रेरी लोड कर रहा है, तो इसे एक नकली फ्रेमवर्क बनाने के लिए जाना जाता है, कुछ ड्रैग-एंड-ड्रॉप सुविधा, लेकिन गतिशील लोडिंग लाभों में से कोई भी नहीं।

ऐप डेवलपर्स से डायनेमिक फ्रेमवर्क रखने के लिए ऐप्पल का तर्क क्या है? ऐसा लगता है कि यह बाहरी पुस्तकालयों का उपयोग करने में काफी आसान होगा, क्योंकि डेवलपर्स को बारीक लिंकर झंडे या ओपन-सोर्स लाइब्रेरी निर्भरता श्रृंखला पर भरोसा नहीं करना होगा।

मुझे लगता है कि एक सामान्य कारण सुरक्षा है। फिर Apple OSX पर क्यों अनुमति देता है न कि iOS पर? क्या सुरक्षा की आवश्यकता नहीं है?

EDIT: यह अब iOS 8 के रूप में प्रासंगिक नहीं है। Apple ने डायनेमिक फ्रेमवर्क के लिए समर्थन जोड़ा है।

जवाबों:


17

किसी प्रोग्राम को स्वीकार करने के लिए Apple के मानदंडों में से एक असमर्थित Apple API's (या अन्य खराब सामान) के लिए कॉल करता है या नहीं। स्थैतिक लिंकिंग की आवश्यकता के द्वारा, वे यह साबित कर सकते हैं कि सॉफ्टवेयर ऐसी कॉल नहीं करता है। डायनामिक लिंकिंग को अनुमति देने से किसी भी प्रकार का व्यवहार बाद में जोड़ा जा सकता है, जो बहुत हद तक उनकी अनुमोदन प्रक्रिया को अमान्य करता है।

Apple OSX में गतिशील लिंकिंग की अनुमति देता है, क्योंकि, Macintoshes असली कंप्यूटर हैं, टैबलेट डिवाइस नहीं हैं, और वास्तविक कंप्यूटर के उपयोगकर्ता उनसे इस तरह से प्रोग्राम करने की उम्मीद करते हैं। टैबलेट और फोन के लिए बाजार डेस्कटॉप और लैपटॉप कंप्यूटर से काफी अलग है। कंप्यूटर उत्पादन उपकरण हैं; उपयोगकर्ताओं को उन पर उत्पाद बनाने में सक्षम होने की उम्मीद है, जिसमें वे क्या चाहते हैं, लिखने वाले कार्यक्रम भी शामिल हैं। यह टैबलेट डिवाइसों की अपेक्षा कभी नहीं थी, जो खपत डिवाइस हैं।

टैबलेट और ऐप्पल स्टोर का पूरा बिंदु उपभोक्ताओं को पैदल चलने वालों के वायरस से बचाने के लिए एक बंद वातावरण बनाना था, और जैसे (अच्छी तरह से, और ऐप्पल को उनके स्टोर के माध्यम से किए गए सभी सॉफ़्टवेयर बिक्री का 30% इकट्ठा करने की अनुमति देने के लिए)।


7
नोट: Apple ने अब iOS 8 के रूप में iOS पर डायनेमिक फ्रेमवर्क की अनुमति दे दी है
जोएल फिशर

@ रोबर्ट हार्वे ने स्पष्टीकरण के लिए धन्यवाद, लेकिन iOS 8 से, वे गतिशील रूपरेखाओं का उपयोग करने के लिए खुले हैं। क्या यह हैकर्स को iOS / ऐप को प्रभावित करने की अनुमति देगा? क्या आपके पास कोई विचार है, Apple ने डेवलपर्स के लिए खुले रूप में गतिशील रूपरेखा कैसे बनाई, लेकिन हैकर को इससे रोका। धन्यवाद!
विजय-Apple-Dev.blogspot.com

8

इस स्टैक ओवरफ्लो प्रश्न में उल्लेखित कारण सुरक्षा है :

कारण सुरक्षा है: चूंकि एक गतिशील लाइब्रेरी को लोड किया जा सकता है और रनटाइम पर अनलोड किया जा सकता है इसलिए आप अतिरिक्त निष्पादन योग्य कोड डाउनलोड कर सकते हैं और इसे लोड कर सकते हैं (सोचें प्लग-इन)। यह एक हैकर द्वारा समझौता किया जा सकता है और फिर आपके फोन पर दुर्भावनापूर्ण कोड निष्पादित करना बहुत बुरी बात है। यह अप्रूव्ड फीचर्स को अप्रूव्ड ऐप में जोड़ना भी संभव करेगा। संक्षेप में: इस माहौल में, ऐप्पल डायनामिक लिंकिंग को पंडोरास बॉक्स मानता है जिसे कड़ाई से नियंत्रित किया जाना चाहिए, अन्यथा यह सुरक्षा से समझौता कर सकता है और मैं सहमत हूं कि यह फोन पर कोई मतलब नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.