प्रत्येक क्लाइंट के लिए अलग-अलग लक्ष्य जाने का तरीका होना चाहिए। विशेषताओं के लिए, मैं पहले लक्ष्य सेटिंग्स में क्लाइंट को पहचानने वाले मैक्रो को स्थापित करने का सुझाव दूंगा (बिल्ड टैब पर "प्रीप्रोसेसर मैक्रोज़" के तहत), फिर फ़ीचरडिफाइन रखें।ज फ़ाइल है कि इस तरह दिखता है:
#ifdef macroClientA // assume client A wants features 1 and 3
# define macroFeature1
# define macroFeature3
#endif
// and similarly for the other clients
अब आप
#import featureDefines
#ifdef macroFeature1
किसी भी जगह आप अगर सुविधा 1 या वांछित नहीं है परीक्षण की आवश्यकता का उपयोग कर सकते हैं।
अलग-अलग आइकन के लिए, आपकी लक्ष्य सेटिंग्स प्रत्येक क्लाइंट के लिए एक अलग info.plist फ़ाइल निर्दिष्ट कर सकती हैं, और वे फ़ाइलें आइकन के लिए एक अलग फ़ाइल नाम निर्दिष्ट कर सकती हैं।
अलग स्पलैश स्क्रीन के लिए, आईओएस को हमेशा स्पलैश स्क्रीन को डिफ़ॉल्ट.png नाम देने की आवश्यकता होती है, लेकिन वे आपकी प्रोजेक्ट निर्देशिका की विभिन्न उप-निर्देशिकाओं में जा सकते हैं। आप नियंत्रित कर सकते हैं कि किसके लिए उपयोग किया जाता है जिसके लिए एक्सकोड कहता है कि "समूह & फ़ाइलें", लक्ष्य सदस्यता का चयन करके, फिर उस चेकबॉक्स की जांच कर रहे हैं, जिसे आप उपयोग करना चाहते हैं, और सुनिश्चित करें कि अन्य अनचेक किए गए हैं।
संसाधनों के लिए, मैं इस तरह अपने संसाधन फ़ाइलों का नामकरण सुझाव है: यदि कोई ग्राहक विशिष्ट एक
ResourceName-clientName.ext
resourceName.ext // सामान्य संसाधन प्रयोग की जाने वाली // ग्राहक विशिष्ट संसाधन
अगला एक सामान्य संसाधन की खोज करने वाली विधि है कि कुछ इस तरह दिखता की स्थापना की: कि विधि आप की अनुमति देगा के माध्यम से
-(NSString *) resourcePathForResourceName: (NSString *) resourceName extension: (NSString *) ext {
NSString *clientName;
#ifdef macroClientA
clientName = @"clientA";
#endif // and similarly for the other clients
NSString *clientSpecificName = [NSString stringWithFormat: @"%@-%@.%@", resourceName, clientName, ext];
NSString *genericName = [NSString stringWithFormat: @"%@.%@"];
if ([[NSFileManager defaultManager] fileExistsAtPath: clientSpecificName])
return clientSpecificName;
else if ([[NSFileManager defaultManager] fileExistsAtPath: genericName])
return genericName;
else
// handle the error
}
अपने सभी संसाधन फ़ाइल रनिंग पकड़ लेता है कोड की एक पंक्ति को बदले बिना अपने प्रोजेक्ट में क्लाइंट-विशिष्ट संसाधन जोड़ने के लिए।
इस के लिए एक इनाम डाल के लिए धन्यवाद। यहां भी यही समस्या। एफडब्ल्यूआईडब्लू, एक ही विषय पर मेरा प्रश्न देखें: http://stackoverflow.com/questions/4112483/how-does-xcode-handle-import-header-statements-in-with- बहुविध-लक्ष्य – makdad