2011-12-17 14 views
13

क्या आप गतिशील रूप से अपने कोको एप्लिकेशन में CFBundleDocumentTypes असाइन कर सकते हैं? रन टाइम के दौरान मतलब मैं अपने ऐप को संभालने के लिए और एक्सटेंशन निर्दिष्ट कर सकता हूं।क्या आप गतिशील रूप से अपने कोको एप्लिकेशन में CFBundleDocumentTypes असाइन कर सकते हैं?

वर्तमान में मैं Info.plist में CFBundleDocumentTypes का उपयोग करके अपने ऐप के लिए कुछ एक्सटेंशन सेट करता हूं, लेकिन एप्लिकेशन को निष्पादित करते समय मैं कोड के माध्यम से ऐसा करना चाहता हूं (रन टाइम के दौरान)। असल में मैं Info.plist फ़ाइल को संशोधित किए बिना लॉन्च सर्विसेज को नए एक्सटेंशन के बारे में जागरूक कर सकता हूं।

धन्यवाद।

उत्तर

9

फिलहाल, वहाँ कोई सार्वजनिक एपीआई एक आवेदन करने के लिए गतिशील रूप से (अन) रनटाइम के दौरान लॉन्च सेवाओं के साथ दस्तावेज़ प्रकार रजिस्टर के लिए है।

Open Emu इस समस्या का सामना करना पड़ता है। उपयोगकर्ता अनुकरणकर्ताओं को चुनिंदा रूप से डाउनलोड/इंस्टॉल करने में सक्षम होते हैं, जो बंडल होते हैं जिनकी Info.plist फ़ाइलें दस्तावेज़ प्रकार परिभाषित करती हैं। एक एमुलेटर स्थापित करने पर, बंडल में परिभाषित प्रकारों को एप्लिकेशन Info.plist में परिभाषित प्रकारों का हिस्सा होना चाहिए। ओपन इमू ऐसा करने के लिए एप्लिकेशन Info.plist को फिर से लिखता है - -updateInfoPlist in OEGameDocumentController देखें।

ध्यान दें कि बंडल को ओवरराइट करना Info.plist मैक ऐप स्टोर की नीति का उल्लंघन है।

हमारे पास filed radars है जो दस्तावेज़ प्रकारों के रनटाइम (संयुक्त) पंजीकरण के लिए पूछता है। मेरा सुझाव है कि आप एक और फ़ाइल भी दर्ज करें, जिसे #2526726 के डुप्लिकेट के रूप में बंद किया जाना चाहिए। भले ही यह एक डुप्लिकेट हो, फिर भी इसे फाइल करना महत्वपूर्ण है ताकि ऐप्पल के पास इस सुविधा की आवश्यकता वाले लोगों की संख्या का अनुमान हो।

यह, हालांकि एसपीआई के माध्यम से संभव हो सकता है। जब मैं इसमें देख रहा था, तो मैंने लॉन्च सर्विसेज में _LSRegisterItemFromItemInfo() पर ठोकर खाई।

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

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