2014-07-06 5 views
5

क्या मैक ऐप स्टोर के माध्यम से सिस्टम फ़ोल्डरों तक पहुंचने के लिए बेचा गया ऐप संभव है?क्या मैक ऐप स्टोर एक्सेस सिस्टम फ़ोल्डरों पर एक सैंडबॉक्स वाला ऐप बेचा जा सकता है?

मेरा मतलब यह है: मेरे ऐप को सैंडबॉक्स क्षेत्र के बाहर निर्देशिकाओं की सामग्री को पढ़ने की जरूरत है, /Library/StartupItems जैसे कुछ कहें और संभवतः उपयोगकर्ता को चाहें तो फ़ाइल को हटा दें।

क्या सैंडबॉक्स किए गए ऐप के लिए सिस्टम फ़ोल्डर तक पहुंचने और वहां फ़ाइलों को हटाने के लिए यह संभव है? अगर यह हटा नहीं सकता है, तो क्या इसे कम से कम पढ़ा जा सकता है?

क्या मुझे मैक ऐप स्टोर पर बेचना चाहते हैं तो क्या मुझे सैंडबॉक्स सक्षम करना होगा?

मैं यादृच्छिक ऐसा करने पर एक निर्देशिका की कोशिश की है:

NSString *path = @"/Library/StartupItems"; 
    NSArray *dirFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil]; 

और मैं निर्देशिका सूची प्राप्त कर सकते हैं। मैं कैसे पढ़ सकता हूं कि यदि ऐप को सैंडबॉक्स के रूप में चिह्नित किया गया है? मुझे यह नहीं मिला।

उत्तर

4

नहीं, मैक ऐप स्टोर के माध्यम से बेचा गया ओएस एक्स एप्लीकेशन आपके द्वारा वर्णित तरीके से संसाधनों तक नहीं पहुंच सकता है। यह भी आवश्यक है कि सभी ऐप्स सैंडबॉक्स किए गए हों और वैध मैक डेवलपर प्रोग्राम सर्टिफिकेट के साथ कोड किए गए हों।

आपके ऐप को "सैंडबॉक्स" के रूप में चिह्नित करते समय /Library/StartupItems (जिसे बहिष्कृत किया गया है) पढ़ने में सक्षम होने के लिए; यह सिर्फ विकल्प चेक करने का मामला नहीं है। आपको यह भी सुनिश्चित करना होगा कि "एंटाइटेलमेंट फ़ाइल का उपयोग करें" चुना गया है और एप्लिकेशन को सही ढंग से कोड किया गया है। एक बार जब आप यह है कि आप का उपयोग करके सत्यापित करने के लिए यह ठीक से टर्मिनल में सैंडबॉक्स है जाँच कर सकते हैं किया है:

codesign -dvvv --entitlements :- Some.app/Contents/MacOS/Executable 

इसके अलावा, वहाँ कुछ निर्देशिकाओं जहां फाइलों कि कर रहे हैं "दुनिया पठनीय" पढ़ा जा सकता है कर रहे हैं:

/bin 
/sbin 
/usr/bin 
/usr/lib 
/usr/sbin 
/usr/share 
/System 

ओएस एक्स एप्लिकेशन को आपके सिस्टम (जैसे) उदाहरण के साथ फ़ाइल सिस्टम के साथ संवाद करने की अनुमति देने के लिए एप्लिकेशन को Authorization Services का उपयोग करके ऊंचा विशेषाधिकारों का उपयोग करने की आवश्यकता होगी - जो ऐप सैंडबॉक्स अस्वीकार करता है। "Determine Whether Your App Is Suitable for Sandboxing" शीर्षक वाले अनुभाग पर एक नज़र डालें, और इसे आपके किसी भी अन्य चिंताओं का उत्तर देना चाहिए।

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

+0

जवाब के लिए धन्यवाद, लेकिन आप एक विकल्प के रूप सैंडबॉक्सिंग के बारे में बात करते हैं। यह एक विकल्प नहीं है अगर मैं इसे ऐप स्टोर पर बेचना चाहता हूं, है ना? मेरा मतलब है, ऐप्पल सभी ऐप को सैंडबॉक्स करने के लिए मजबूर करता है अगर उन्हें ऐप स्टोर के माध्यम से बेचा जाता है, है ना? – SpaceDog

+2

सही। ऐप सैंडबॉक्स का उपयोग करना केवल तभी वैकल्पिक है जब आप इसे मैक ऐप स्टोर के बाहर बेचना चाहते हैं। –

+0

मुझे संदेह था कि। धन्यवाद। – SpaceDog

संबंधित मुद्दे