2009-12-02 9 views
22

उपयोगकर्ता परिभाषित सेटिंग से Info.plist फ़ाइल में एक संपत्ति सेट करना आसान है, तो आप केवल $ {YOUR_SETTING_NAME} को मान के रूप में उपयोग करते हैं। हालांकि, क्या यह बोलेन संपत्ति के लिए ऐसा करना संभव है? एक बूलियन के लिए plist फ़ाइल में संरचना होती है:उपयोगकर्ता परिभाषित सेटिंग से Info.plist में एक बूलियन प्रॉपर्टी सेट करना

<key>NSAppleScriptEnabled</key> 
<false/> 

यह कैसे परिभाषित एक उपयोगकर्ता यहां अपनी सेटिंग का उपयोग करने के स्पष्ट नहीं है।

उत्तर

10

मुझे यकीन नहीं है कि आप जो पूछ रहे हैं उसे कैसे करें, लेकिन मुझे पूरा यकीन है कि इस विशेष कुंजी (एनएसपीप्लेस्क्रिप्टएनेबल) के लिए आप स्ट्रिंग्स "हां" और "नहीं" का भी उपयोग कर सकते हैं और यह काम करेगा।

+2

यह काम करता है यदि आप चर (सेटिंग) प्रकार को Info.plist में स्ट्रिंग (बूलियन नहीं) सेट करते हैं और फिर 'हाँ' और 'NO' का उपयोग करते हैं। धन्यवाद। – edoloughlin

+7

एक्सकोड आपको अंतर्निर्मित कुंजी के लिए चर प्रकार बदलने की अनुमति नहीं देता है। उदाहरण के लिए, मैं विकास निर्माण के लिए ऐप ट्रांसपोर्ट सिक्योरिटी को बंद करने की कोशिश कर रहा हूं ताकि मैं चार्ल्स प्रॉक्सी के साथ एसएसएल प्रॉक्सीइंग का उपयोग कर सकूं। "मनमाने ढंग से लोड की अनुमति देता है" कुंजी को बूलियन से बदला नहीं जा सकता है। उस मामले में कोई क्या करता है? – josephap

+1

मेरे पास UIFileSharingEnabled कुंजी के साथ एक ही समस्या है। जबकि एक्सकोड मुझे कुंजी प्रकार को स्ट्रिंग में बदलने की अनुमति देता है और यह एक्सकोड में ठीक बनाता है और चलाता है, ऐप को ऐपस्टोर पर सबमिट करते समय मुझे एक त्रुटि मिलती है। – ejel

-4

आप "उपयोगकर्ता निर्धारित सेटिंग" क्या मतलब है ...

उपयोगकर्ता की बात कर रहे आप (दूसरे शब्दों में, ऐप के डेवलपर से) है, तो आप सिर्फ डाल सकता है तुम वहाँ चाहते हैं जो कुछ चाबियाँ , बस अपने एक्सकोड परियोजना में किसी भी अन्य प्लिस्ट की तरह।

यदि आप जिस उपयोगकर्ता के बारे में बात कर रहे हैं वह आपके ऐप का अंतिम उपयोगकर्ता है, तो अपनी जानकारी को अपनी Info.plist में सहेजने की कोशिश न करें। यह आवेदन का एक हिस्सा है। हालांकि किसी ऐप के लिए मैक पर अपनी जानकारी प्लिस्ट बदलने के लिए कभी-कभी संभव होता है, यह ऐप इंस्टॉल होने के तरीके के आधार पर अक्सर नहीं होता है। आईफोन पर यह कभी भी संभव नहीं है, क्योंकि ऐप केवल पढ़ने के लिए है। किसी भी घटना में, अपनी Info.plist को बदलना आपके द्वारा किए गए किसी भी ऐप पर हस्ताक्षर को अमान्य कर देगा।

यदि आप अंतिम उपयोगकर्ता सेटिंग्स को बदलना चाहते हैं, तो कुछ NSUserDefaults का उपयोग करें।

+0

हाय लुइस। मेरा मानना ​​है कि वह मैक पर उपयोगकर्ता द्वारा परिभाषित एक्सकोड बिल्ड सेटिंग के बारे में बात कर रहा है। –

+2

ऊपर दिए गए स्वीकृत उत्तर देखें। मेरे पास एक एकल Info.plist साझा करने वाले प्रोजेक्ट में एकाधिक लक्ष्य हैं। मैं Info.plist में मानों को कॉन्फ़िगर करने के लिए प्रत्येक लक्ष्य पर उपयोगकर्ता परिभाषित सेटिंग्स का उपयोग कर रहा हूं। उनमें से एक एक बुलियन है और यह स्पष्ट नहीं है (या नहीं था) इन्हें कैसे बदला जाए। – edoloughlin

1

टैग के भीतर बूलियन युक्त प्लेस्ट फ़ाइलें अब मान्य नहीं हैं।

यह समाधान काम करता है:

एक नया भागो स्क्रिप्ट को आपके लक्ष्य के निर्माण चरण जोड़ें। इस में रख:

if [ ${CONFIGURATION} = "Release" ]; then 
/usr/libexec/PlistBuddy -c "Set :UIFileSharingEnabled NO" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}" 
fi 

तो मेरी विन्यास में, मैं एक डिफ़ॉल्ट के रूप में मेरे plist में हां में UIFileSharingEnabled सेट कर रहा हूं और जब मैं रिलीज के लिए निर्माण कर रहा हूँ, तो कदम से ऊपर होता है और गलत पर यह तय करता है।

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