2011-03-26 6 views
14

मेरे पास एंड्रॉइड के लिए एक एप्लीकेशन है जो दो रूपों में आता है: एक परीक्षण संस्करण और एक भुगतान "समर्थक" संस्करण। एंड्रॉइड मार्केट में दो संस्करण सह-अस्तित्व में हैं और उनके पास अलग-अलग पैकेज नाम हैं (चलिए उन्हें com.app.trial और com.app.pro कहते हैं)। वे एक ही कोडबेस साझा करते हैं। जब मुझे एक्लिसपे में परीक्षण और प्रो बिल्ड के बीच स्विच करना होता है, तो मुझे प्रत्येक बार सही संस्करण बनाने के लिए कोड संपादित करने में 20 मिनट से भी कम समय खर्च नहीं करना पड़ता है। मेरे प्रक्रिया इस प्रकार है: AndroidManifest.xml मेंएक्लिप्स में एंड्रॉइड ऐप्स के साथ परीक्षण और प्रो बिल्डिंग स्विच करना: इसे कम दर्दनाक कैसे बनाना है?

  1. नाम बदलें पैकेज नाम (भी एप्लिकेशन versionName नाम बदलें, और versionCode)।

  2. मुख्य पैकेज नाम "com.app.pro" पर क्लिक करें (यदि समर्थक सबसे आखिरी बिल्ड था और अब मैं एक परीक्षण निर्माण करना चाहता हूं) और रिफैक्टर-> नाम बदलें ('संदर्भ अपडेट करें' और 'उपनामों का नाम बदलें' ') और ग्रहण का नामकरण करने दें।

  3. इसके बाद यह कठिन हिस्सा आता है: मेरे कोड में कई फाइलें अभी भी "com.app.trial" में बदलने के बजाय "पुराना" पैकेज नाम "com.app.pro" आयात करती हैं। कुछ मामलों में ग्रहण नामांकन के दौरान उन संदर्भों को जोड़ता है, किसी स्पष्ट कारण के लिए (किसी दिए गए जावा फ़ाइल के भीतर से इस विशिष्ट पैकेज का कोई संदर्भ नहीं है)। मुझे सभी मामलों को मैन्युअल रूप से संपादित करना होगा।

मेरा प्रश्न है:

मैं कैसे इस प्रक्रिया में कम समय लगता है कर सकता हूँ? मैं नेटबीन का भी उपयोग कर रहा हूं जहां #ifdefs (उर्फ क्षमताओं) के लिए एक आसान समर्थन है जो वास्तव में हवा बनाने के बीच स्विचिंग करता है। ग्रहण दुर्भाग्यवश #ifdefs के लिए कोई समर्थन नहीं है (कम से कम कोई buil-in समर्थन)।

किसी भी सुझाव की सराहना की जाएगी।

पीएस संदर्भ के लिए मैं ग्रहण गैनीमेड संस्करण 3.4.2 का उपयोग कर रहा हूं लेकिन एक नए संस्करण की भी कोशिश की, यह वही है।

+0

मैं यहाँ एक और धागा पर कदम जवाब द्वारा एक कदम पोस्ट: [दोनों स्वतंत्र और समर्थक संस्करणों को बनाए रखने एक आवेदन] [1] [1]: http://stackoverflow.com/questions/2529062/maintaining-both-free-and-pro-versions-of-an-plication – ProgMasta

उत्तर

22

इस के लिए एक महान समाधान तीन परियोजनाओं में अपने आवेदन पत्र विभाजित करने के लिए है:

  • एक library project, कि बनाने सभी आम कोड
    • वास्तव में शामिल होंगे, दो संस्करणों (लाइट और भुगतान) एक आवेदन में से एक सामान्य परिदृश्य इस पृष्ठ के बारे में बात कर रहा है ;-)
  • परीक्षण संस्करण के लिए एक परियोजना,
  • और समर्थक संस्करण के लिए एक प्रोजेक्ट।

प्रत्येक परीक्षण और प्रो संस्करण होगा:

  • संदर्भ पुस्तकालय परियोजना (है कि लगभग सभी कोड शामिल)
  • परिभाषित करें कि (परीक्षण या प्रो संस्करण के लिए विशिष्ट है प्रकट की तरह, कुछ तार, कुछ अतिरिक्त कोड, ...)

इसके साथ, परीक्षण या समर्थक संस्करण बनाना एक परियोजना के निर्माण के समान सरल है, या दूसरा: कुछ भी बदलने की आवश्यकता नहीं है!


लिंक के एक जोड़े को मदद कर सकता है कि:

+0

यह एक विकल्प है, लेकिन मैं सुझावों की तलाश कर रहा था कि ग्रहण कैसे करें जब यह रिफैक्टरिंग करता है तो आयात विवरणों का नाम बदलें। यही वह था जो मैं होने की उम्मीद कर रहा था, लेकिन कोई भाग्य नहीं। – antonio

+0

ठीक है, लाइब्रेरी प्रोजेक्ट सेट होने के बाद, जब भी आप एप्लिकेशन प्रोजेक्ट्स में से किसी एक को बनाना चाहते हैं, तो किसी भी चीज को दोबारा करने की आवश्यकता नहीं है - सबसे खराब बात यह है कि लाइब्रेरी प्रोजेक्ट सेट करते समय आपको कुछ खोज करना और प्रतिस्थापित करना होगा * (इसलिए, एक बार दर्द का थोड़ा सा - शायद यह आपको आधे घंटे, शीर्ष पर ले जाएगा) * ;; लेकिन, उसके बाद, लाइब्रेरी का संदर्भ देने वाले प्रत्येक प्रोजेक्ट का निर्माण करें ;-) * (मैं इसे अपनी परियोजना के लिए कर रहा हूं, और यह बहुत अच्छी तरह से काम करता है: प्रत्येक ऐप प्रोजेक्ट का निर्माण कुछ क्लिकों का मामला है, और मैं कुछ भी नाम बदलने की ज़रूरत नहीं है) * –

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