2011-09-17 9 views
17

मैं 2 अलग-अलग ऐप्स विकसित कर रहा हूं जो समान कोड और विचारों का 95% साझा करते हैं। एक्सकोड का उपयोग कर इस बारे में जाने का सबसे अच्छा तरीका क्या है?एक्सकोड में एक ही साझा कोड से एकाधिक ऐप्स कैसे बनाएं?

उत्तर

35

लक्ष्य का उपयोग करें। यही वही है जो वे हैं।

Learn more about the concept of targets here

आम तौर पर, अधिकांश परियोजनाओं में एक ही लक्ष्य होता है, जो एक उत्पाद/अनुप्रयोग से मेल खाता है। आप कई लक्ष्यों को परिभाषित करते हैं, तो आप कर सकते हैं:

  • अन्य
  • में एक लक्ष्य में दोनों लक्ष्यों में अपने स्रोत कोड फ़ाइलें (या शायद सभी) में से कुछ, कुछ और कुछ आप के लिए सेटिंग्स बिल्ड साथ खेल सकते हैं शामिल विभिन्न सेटिंग्स का उपयोग कर दो लक्ष्यों को संकलित करें।

उदाहरण के लिए यदि आप अन्य (के लक्ष्य में कहते हैं कि OTHER_C_FLAGS = -DPREMIUM "PremiumVersion" और OTHER_C_FLAGS = -DLITE "LiteVersion" लक्ष्य में LITE मैक्रो निर्धारित करने की है) और फिर के लिए एक लक्ष्य और अन्य मैक्रो के लिए Precompiler मैक्रो परिभाषित कर सकते हैं अपने स्रोत में समान कोड शामिल करें:

-(IBAction)commonCodeToBothTargetsHere 
{ 
    ... 
} 

-(void)doStuffOnlyAvailableForPremiumVersion 
{ 
#if PREMIUM 
    // This code will only be compiled if the PREMIUM macro is defined 
    // namely only when you compile the "PremiumVersion" target 
    .... // do real stuff 
#else 
    // This code will only be compiled if the PREMIUM macro is NOT defined 
    // namely when you compile the "LiteVersion" target 

    [[[[UIAlertView alloc] initWithTitle:@"Only for premium" 
     message:@"Sorry, this feature is reserved for premium users. Go buy the premium version on the AppStore!" 
     delegate:self 
     cancelButtonTitle:@"Doh!" 
     otherButtonTitles:@"Go buy it!",nil] 
    autorelease] show]; 
#endif 
} 

-(void)otherCommonCodeToBothTargetsHere 
{ 
    ... 
} 
+1

यदि आप इसका आदी हैं, तो विभिन्न मेकफ़ाइल के रूप में लक्ष्य के बारे में सोचें। उनके पास एक ही भूमिका है। – Cyrille

+2

यह बहुत बड़ा है, धन्यवाद। यह वास्तव में मेरे लिए सही काम करने के लिए मुझे एक प्रतिलिपि लक्ष्य करने की आवश्यकता है, फिर मेरे बंडल नाम ect के लिए एक अलग Info.plist का उपयोग करने के लिए लक्ष्य सेटिंग्स को अद्यतन करें ... – Slee

+4

ध्यान दें कि यदि आप अपनी परियोजना में फ़ाइलों को और जोड़ते हैं, तो सावधान रहें दोनों लक्ष्यों में फ़ाइल जोड़ने के लिए और न केवल सक्रिय: फ़ाइल जोड़ने के दौरान, यह पूछने वाले संवाद में कि क्या आप फ़ाइलों की प्रतिलिपि बनाना चाहते हैं या नहीं, आपके पास प्रत्येक के सामने अपने लक्ष्यों और चेकबॉक्स की एक सूची है । (चेकबॉक्स राज्य सहेजा जाता है ताकि आपको शायद इसे एक बार जांचने की आवश्यकता हो) – AliSoftware

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