2011-01-01 17 views
5

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

उत्तर

3

आप प्रोजेक्ट बिल्ड सेटिंग्स में, प्रत्येक कॉन्फ़िगरेशन के लिए विशिष्ट सी प्रीप्रोसेसर मैक्रो परिभाषित कर सकते हैं। उदाहरण के लिए, मेरे पास डीबग कॉन्फ़िगरेशन में -DDEBUG है, जो DEBUG मैक्रो को परिभाषित करता है। फिर, कोड को #ifdef DEBUG ... #endif के साथ संकलित किया जा सकता है।

इसके अलावा, Info.plist फ़ाइल को पूर्व-प्रोसेस किया जा सकता है।

+0

अंत में, मैंने लक्ष्य के लिए एक रन स्क्रिप्ट बिल्ड चरण जोड़ने का निर्णय लिया जो Info.plist फ़ाइल को प्रीप्रोकैस करता है। मैं पर्यावरण चर से कॉन्फ़िगरेशन का नाम प्राप्त कर सकता हूं और यह तय करने के लिए उपयोग कर सकता हूं कि Info.plist फ़ाइल के कौन से हिस्सों को शामिल/बहिष्कृत किया जाना है। एक बार मैंने इसे ठीक से हल करने के बाद यहां एक पूर्ण समाधान पोस्ट करूंगा। –

+1

Info.plist प्रीप्रोकैसिंग XCode की आधिकारिक क्षमताओं का हिस्सा है (देखें http://www.leegillen.com/Public/Blog/Entries/2008/6/26_How_to_have_a_target_or_build_configuration_specific_Info.plist.html) –

6

मैं देर को यह पता है, लेकिन यह अन्य लोगों

मदद मिल सकती है यह मैं कैसे एक ही समस्या

  • हल डिबग के लिए 2 Root.plist फ़ाइल एक बनाएँ और रिलीज के लिए एक है।
  • अपनी बिल्ड प्रक्रिया में यह रन स्क्रिप्ट जोड़ें।
 

if [ "$CONFIGURATION" == "Debug" ];then 
    rm -f "$SRCROOT/Settings.bundle/Root.plist" 
    cp "$SRCROOT/Debug/Root.plist" "$SRCROOT/Settings.bundle" 
else 
    rm -f "$SRCROOT/Settings.bundle/Root.plist" 
    cp "$SRCROOT/Release/Root.plist" "$SRCROOT/Settings.bundle" 
 
-3

मैं सिर्फ एमएस वेबसाइट से वापस। एमएस कोई समर्थन बहु कॉन्फ़िगरेशन फ़ाइल नहीं करता है। तो यदि आपकी कनेक्शन स्ट्रिंग app.config में स्थित है, आपको दो app.config स्विच करने के लिए ग्राहक कार्य या बल्ले चलाने होंगे।

+0

मुझे यह समझने में परेशानी है कि यह कैसे जवाब देता है सवाल। – laalto