2012-09-19 12 views
20

मैंने देखा है कि यह (सिम्युलेटर पर परीक्षण, आदि) देव मोड में काम करता है:एक्सकोड डेबग मोड - यह कब चालू/बंद है?

#ifdef DEBUG 
    //do stuff 
#endif 

लेकिन जब मैं संग्रह करने और वितरित परीक्षण बनाता है, एप्लिकेशन डिबग मोड में कार्य नहीं करता है, भले ही मैं अभी भी कर रहा हूँ डेवलपर प्रोफ़ाइल के साथ इमारत। मैं DEBUG मोड हमेशा तब तक केस चाहता हूं जब तक कि मैं तैनाती प्रोफ़ाइल के साथ निर्माण नहीं करता और ऐप्पल को सबमिट नहीं करता।

उदाहरण के लिए, जब भेजने परीक्षण बाहर बनाता है, मैं बनाने के लिए नहीं करना चाहते हैं लोगों को एक इन-ऐप खरीदारी खरीदते हैं, तो मैं कुछ इस तरह करते हैं:

- (BOOL)isUpgradePurchased 
{ 
#ifdef DEBUG 
    return YES; 
#endif 

//do the real stuff to determine if purchased and return YES or NO 
} 

तो मैं भी एक सेट करने की आवश्यकता है "रिलीज" के लिए प्रीप्रोसेसर मैक्रो डेब्यूजी = 1?

उत्तर

14

enter image description here

तुम भी "संपादन योजना" जब संग्रह डीबग विन्यास का निर्माण कर सकते हैं। एक्सकोड में "योजना संपादित करें" संवाद का स्क्रीनशॉट देखें।

+0

तो मुझे बस आर्काइव बिल्ड कॉन्फ़िगरेशन में "रिलीज" को "डीबग" में बदलने में सक्षम होना चाहिए? – soleil

+0

हां, लेकिन आपको ऐप्पल को सबमिट करने से पहले इसे रिलीज़ करने के लिए इसे बदलना होगा। – msk

+0

मेरे पास ऐपस्टोर के लिए पूरी तरह से एक अलग योजना है। – soleil

16

एक्सकोड का वर्तमान संस्करण स्वचालित रूप से नई परियोजनाओं में DEBUG मैक्रो सेट करता है। यह केवल डीबग बिल्ड मोड के लिए ही करता है।

आप इसे अपनी परियोजनाओं में संपादित कर सकते हैं सेटिंग्स बनाएं।

मैं आपको DEBUG को संपादित करने के बजाय एक नया, अलग मैक्रो जोड़ने की सलाह देता हूं। शायद आप रिलीज मोड के लिए DISTRIBUTION या DEPLOYMENT मैक्रो जोड़ सकते हैं।

enter image description here

+0

लेकिन क्या मैं रिलीज मोड के लिए DEBUG = 1 भी नहीं कह सकता? – soleil

+3

आप कर सकते हैं। लेकिन इस तरह के अपने उद्देश्य को हरा देता है। – DrummerB

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