2010-02-16 11 views
14

मैं अपनी "नकली" डेटा सेवाओं और हमारे लाइव लोगों को स्विच करना आसान बनाने के लिए एक तरीके से आने की कोशिश कर रहा हूं। असल में, हमारे पास असली वेब सेवाओं के साथ लाइव सर्वर होंगे, लेकिन किसी भी कारण से, डेवलपर स्थैतिक फ़ाइलों (फ़ाइल यूआरएल) से डेटा लोड करना चाहता है।एक्सकोड - कस्टम कॉन्फ़िगरेशन में फ़ाइलों को बाहर निकालें - बेहतर तरीका?

मुझे लगा कि मैं इस समस्या को उन श्रेणियों को बनाकर हल करूंगा जो डेटा लाने वाले तरीकों को ओवरराइड करते हैं, इस प्रकार मूल कोड को छूटा जाता है (इसमें "नकली" डेटा की कोई अवधारणा नहीं है)। मैं #ifdef के साथ अपना कोड कूड़ा नहीं चाहता हूं।

मैं प्रत्येक फ़ाइल की शुरुआत में #ifdef डाल सकता हूं जिसमें इसमें श्रेणियां हैं, और मैं कॉन्फ़िगरेशन सेटिंग्स में एक कस्टम ध्वज सेट कर सकता हूं, लेकिन मुझे बस फाइलों को शामिल या बहिष्कृत करने का कोई तरीका होगा विन्यास के आधार पर। क्या यह संभव है? आपके द्वारा इस समस्या को कैसे हल किया जाएगा?

उत्तर

31

http://lists.apple.com/archives/xcode-users/2009/Jun/msg00153.html

देखें चाल विन्यास में EXCLUDED_SOURCE_FILE_NAMES परिभाषित करने के लिए है आप से फाइल को बाहर करने के लिए, और (या कि कस्टम फ़ाइल नामों की एक सूची के लिए सेटिंग निर्माण का मूल्य एक पैटर्न है कि उन से मेल खाता है चाहता हूँ , और केवल वे, फ़ाइल नाम)।

+7

बिंगो। इसे सावधानी से दस्तावेज करना सुनिश्चित करें, क्योंकि यह ऐसा कुछ है जो किसी ऐसे व्यक्ति के लिए बिल्कुल स्पष्ट नहीं है जो एक्सकोड से उस स्तर के विस्तार से परिचित नहीं है। और ध्यान दें कि INCLUDED_SOURCE_FILE_NAMES EXCLUDED_SOURCE_FILE_NAMES को ओवरराइड करता है। –

+0

धन्यवाद! वह बहुत उपयोगी था! – RPM

+0

बस एक टिप: फ़ाइल नामों के लिए जंगली कार्ड का उपयोग करना संभव है। – Awsed

1

मैं दो लक्ष्यों को बनाने की अनुशंसा करता हूं जिनमें से एक नकली श्रेणियां शामिल हैं और दूसरा ऐसा नहीं है।

जब आप परीक्षण करना चाहते हैं, तो बस नकली श्रेणियों वाले लक्ष्य का निर्माण करें। बाकी सब कुछ समान रह सकता है।

+0

क्या आप दूसरे पर लक्ष्य पर आधारित हो सकते हैं? मुझे चिंता है कि लोग दोनों (या एकाधिक) लक्ष्यों में नई फाइलें जोड़ना भूल जाएंगे। इसके अलावा, हम पहले से ही कुछ और (आईपैड बनाम आईफोन) के लिए लक्ष्य का उपयोग कर रहे हैं - विचार? –

+0

मुझे लगता है कि बिल्ड स्क्रिप्ट को कस्टमाइज़ करने के लिए सीडीस्पिनोसा का सुझाव कुछ अर्थों में इसे 'स्वचालित' बनाने का एकमात्र तरीका है। यदि आप फ़ाइलों के लिए नामकरण सम्मेलन का उपयोग करते हैं तो एक स्क्रिप्ट उन्हें शामिल या बहिष्कृत करने में सक्षम होना चाहिए। हालांकि, आप अपनी प्रक्रिया में किसी बिंदु पर हमेशा मैन्युअल कदम रखना चाहते हैं जो एक्सकोड को इंगित करता है कि कौन सी फाइलें लक्षित होती हैं। लिंकर आपके दिमाग को नहीं पढ़ सकता है। ;-) – TechZen

1

यदि आप एक फ़ाइल जोड़ना चाहते हैं लेकिन इसे संकलित नहीं करना चाहते हैं। (अपने सभी लक्ष्यों के लिए) प्रोजेक्ट> चरणों का निर्माण> स्रोत संकलित करें और उस फ़ाइल को निकालें जिसे आप संकलित नहीं करना चाहते हैं।

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