2012-09-24 10 views
25

ऐप्पल ने प्रति ऐप नई गोपनीयता सेटिंग्स पेश की, जिससे उपयोगकर्ताओं को यह तय करने की इजाजत दी गई कि उपयोगकर्ता को संपर्क, कैलेंडर, फ़ोटो और रिमाइंडर्स तक पहुंचने की अनुमति है या नहीं। उपयोगकर्ता एक यूआईएलर्टव्यू देखेंगे जब कोई ऐप पहले इन संसाधनों में से किसी एक तक पहुंचने का प्रयास करता है, जब कोई ऐप स्थान पहुंच चाहता है तो ज्ञात तंत्र के समान।आईओएस 6 को कैसे स्थानांतरित करें नया Info.plist गोपनीयता उद्देश्य तार?

उद्देश्य स्ट्रिंग सेट करना भी संभव है, ताकि उपयोगकर्ता को यह पता चल सके कि ऐप क्यों एक्सेस करना चाहता है। हालांकि, यह अब Info.plist में कुंजी के माध्यम से किया जाता है, उदा। संपर्कों के लिए "गोपनीयता - संपर्क उपयोग विवरण" (NSContactsUsageDescription)।

अब मैं खुद से पूछता हूं कि मैं इन मूल्यों को कैसे स्थानीयकृत कर सकता हूं? स्थान उद्देश्य टेक्स्ट के लिए, मैं NSLocalizedString (...) के साथ CLLocationManager इंस्टेंस की उद्देश्य प्रॉपर्टी सेट करता था। मैं Info.plist में उन नई कुंजियों के साथ कुछ कैसे करूं?

परिशिष्ट: नई गोपनीयता कुंजी दिए गए लिंक पर सूचीबद्ध हैं, लेकिन सारांश स्तंभ स्थानीयकृत किए जाने योग्य होने के रूप में उन्हें सूची नहीं है: https://developer.apple.com/library/mac/#documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW14

उत्तर

44

सहायक फ़ाइलों में स्थानीयकृत InfoPlist.strings पर कुंजी जोड़ें। यह इस उद्देश्य के लिए दिखना चाहिए:

/* Localized version of location services purpose for Info.plist */ 
NSLocationUsageDescription = "here is your purpose to use location service"; 
+0

यदि आप अभी भी एक प्रोजेक्ट पर काम कर रहे हैं जो मूल रूप से एक्सकोड 3.x के साथ बनाया गया था, तो "InfoPlist.strings" फ़ाइल नहीं है। तो आपको अपनी परियोजना में फ़ाइल को मैन्युअल रूप से जोड़ना होगा। – Tafkadasoh

+1

यहां दिए गए उद्देश्य के लिए कुंजी खोजें (अंतिम अपडेट फरवरी 2014 - अपनी InfoPlist.strings फ़ाइल में ** कुंजी ** मान का उपयोग करें या ** नियमित कोड.प्लिस्ट फ़ाइल में ** एक्सकोड नाम **): [सूचना संपत्ति सूची मुख्य संदर्भ: कोको कुंजी] (https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html) – leanne

11

आप InfoPlist.strings फ़ाइल स्थानीयकरण के आधार पर आपके Info.plist स्थानीय बनाना।

+0

मेरे लिए काम नहीं करता है। Info.plist build को स्थानीयकरण के बाद निम्नलिखित संदेश के साथ विफल रहता है "/home/username/Git/iOS/AppName/Resources/AppName-Info.plist 'से डेटा नहीं पढ़ सका: फ़ाइल" AppName-Info.plist "फ़ाइल नहीं हो सका खोला जाए क्योंकि ऐसी कोई फ़ाइल नहीं है। " – Tafkadasoh

+0

ऐसा लगता है कि आप Info.plist फ़ाइल को खोलने की कोशिश कर रहे हैं, नहीं .strings फ़ाइल। स्ट्रिंग्स फाइलें उनके संबंधित स्थानीय फ़ोल्डर में हैं। इस उदाहरण पर एक नज़र डालें https://github.com/Abizern/SimpleLocalisationTesting आईओएस प्रोजेक्ट में आप देख सकते हैं कि मैं स्थानीयकृत .lproj फ़ोल्डरों में InfoPlist.strings फ़ाइलों का उपयोग कैसे कर रहा हूं ताकि विभिन्न स्थानीयकरण के लिए अलग-अलग ऐप नामों का उपयोग किया जा सके। – Abizern

+0

ठीक है, यह CFBundleDisplayName के लिए काम करता है, लेकिन केवल कुछ ही हिस्सों में। होम स्क्रीन InfoPlist.strings से स्थानीय स्ट्रिंग को प्रदर्शित करती है, लेकिन यदि मैं '[[[NSBundle mainBundle] infoDictionary] ऑब्जेक्टफॉरकी: @ "CFBundleDisplayName"] के साथ प्रोग्रामेटिक रूप से मूल्य से क्वेरी करना चाहता हूं, तो यह काम नहीं करता है। NSContactsUsageDescription के स्थानीयकरण के संबंध में, यदि यह काम कर रहा है, तो मैं परीक्षण नहीं कर सकता, क्योंकि संवाद केवल एक बार प्रदर्शित होता है। (कारण: ऐप को हटाने और पुनर्स्थापित करने से सिस्टम को उपयोगकर्ता के निर्णय को भूलने नहीं दिया जाएगा यदि ऐप को संपर्कों तक पहुंचने की अनुमति है।) – Tafkadasoh

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

  • कोई संबंधित समस्या नहीं^_^