2013-04-15 5 views
9

में दो आईओएस ऐप्स बनाएं एक्सकोड (आईओएस पर विकसित करने के लिए) का उपयोग करके मैं एक दूसरी परियोजना बनाना चाहता हूं कि यह पहली परियोजना के समान है लेकिन कुछ कक्षाएं अलग-अलग हैं।एक्सकोड

बिल्कुल, मैं एक आईफोन ऐप बना रहा हूं और मैं एक मुफ्त संस्करण और प्रीमियम संस्करण पेश करना चाहता हूं। असल में, परियोजनाओं का कोड समान है लेकिन कुछ वर्गों को बदलता है।

समस्या यह है कि मैं दो परियोजनाओं का समर्थन नहीं करना चाहता हूं। यदि मैं कक्षा को संशोधित करता हूं, तो मुझे अन्य प्रोजेक्ट पर एक ही बदलाव को संशोधित करना होगा। यह बहुत अनावश्यक है।

इसके अलावा, परियोजना को रिमोट जीआईटी रेस्पॉजिटरी में धक्का दिया जाता है।

और एक आखिरी नोट, आईओएस ऐप परियोजना से जुड़े आईडी का उपयोग करके पहचानता है।

तो, मुझे दो differents परियोजनाओं की आवश्यकता है?

कक्षाओं को साझा करने वाले एक्सकोड में दो आईओएस ऐप परियोजनाओं को बनाने का सबसे अच्छा समाधान कौन सा है, लेकिन दो ओ तीन वर्गों को बदल रहा है?

धन्यवाद

उत्तर

17

मैं एक मुक्त संस्करण और एक प्रीमियम संस्करण की पेशकश करना चाहते हैं।

इस मामले में, आप दो परियोजनाओं में दो ऐप्स बनाने की जरूरत नहीं है: आप सभी की जरूरत अपने प्रीमियम संस्करण के लिए एक दूसरे लक्ष्य है। यहां एक link that explains how to create and manage multiple targets in Xcode है।

प्रक्रिया परियोजना के लिए एक लक्ष्य जोड़ने के लिए उबलती है, इसके लिए एक अलग गुण प्लस परिभाषित करती है, वैकल्पिक रूप से सशर्त संकलन के लिए प्रीप्रोसेसर प्रतीक स्थापित करती है, और उस संस्करण का उपयोग #ifdef आपके वर्गों के हिस्सों को मुक्त संस्करण में आवश्यक नहीं है ।

मुफ्त बनाम प्रीमियम पेशकश के प्रबंधन के लिए एक और आम दृष्टिकोण मुफ्त में एक संस्करण प्रदान करना है, और उपयोगकर्ताओं को इन-ऐप खरीद के माध्यम से इसे प्रीमियम में अपग्रेड करना है।

6

आपको केवल दो लक्ष्य बनाना है। तो आप केवल एक कोड बेस संशोधित करेंगे, सही!

This tutorial आपको (और यहां तक ​​कि लाइट/पेड संस्करणों का उदाहरण के रूप में भी उपयोग करेगा) के माध्यम से चलेंगे।

0
  1. भुगतान किया संस्करण और नाम यह नि: शुल्क संस्करण

  2. की डुप्लीकेट लक्ष्य का भुगतान लक्ष्य में मैक्रो का नाम PaidApp=1 परिभाषित करते हैं, तो applicationDidfinishLaunching के शुरू में कोड की इस पंक्ति डाल दिया।

    #ifdef PaidApp 
    [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"adDisabled"]; 
    #endif 
    
  3. जब नि: शुल्क एप्लिकेशन चल लक्ष्य, अगर कोई खरीद एप्लिकेशन सुविधा का भुगतान तो मूल्य @ "adDisabled" के 1 पर सेट

(की @ "adDisabled" डिफ़ॉल्ट मान से 0 हो जाएगा)