2011-06-21 13 views
10

मेरा भुगतान ऐप WP7 बाज़ार पर प्रकाशित किया गया है। अब मैं ऐप का एक मुफ्त संस्करण बनाना चाहता हूं।मेरे ऐप के मुफ्त संस्करण का प्रबंधन

मुझे लगता है कि मेरे पास निरंतर IsFreeVersion = true; होगा और उसके बाद कुछ कार्यक्षमता अक्षम हो जाएगी।

इसके लिए मेरी परियोजना को स्थापित करने का सबसे अच्छा तरीका क्या होगा? मैं निश्चित रूप से कोड के दो संस्करण नहीं चाहता हूं। तो क्या मुझे एक नई परियोजना बनाना चाहिए और फाइलों को लिंक करना चाहिए?

इसके अलावा, मैं विभिन्न एप्लिकेशन आइकन कैसे प्रबंधित करूं? अंत में, मुझे अपने आवेदन आईडी के लिए एक अलग GUID की आवश्यकता नहीं होगी?

उत्तर

5

आप अलग क्षुधा चाहते हैं मुफ्त और भुगतान संस्करणों के लिए (संभवतः आप fre की कार्यक्षमता सीमित कर रहे हैं ई ऐप या विज्ञापन जोड़ना) तो मैं एक अलग प्रोजेक्ट तैयार करता हूं और फिर दूसरे की एक्सिसिटिंग फाइलों से लिंक करता हूं ("लिंक के रूप में जोड़ें" का उपयोग करें)।

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

+0

Fwiw, संकलक निर्देशों के लिए सबसे आसान हो जाएगा। आप बस परियोजना सेटिंग्स (मुक्त संस्करण के) में एक ISFREEVERSION निर्देश परिभाषित करते हैं, और उसके बाद बस #sese ISFREEVERSION जोड़ें ... #else ... #endif (यह बहुत अच्छा काम करता है!) – DevTheo

+0

धन्यवाद मैट! यह दृष्टिकोण मुझे परियोजना के लिए एक अद्वितीय GUID, ऐप के लिए नया आइकन और मेरे कोड को डुप्लिकेट करने की अनुमति नहीं देता है! –

+0

@DevTheo thata केवल एक बिंदु तक अच्छा है। यह आपकी परियोजना प्रोजेक्ट्स, इमेज इत्यादि की मदद नहीं करता है। –

4

Trial API ऐसी स्थिति को संभालने के लिए डिज़ाइन किया गया है। आप जांच सकते हैं कि IsTrial सत्य है, इस स्थिति में आप कार्यक्षमता को एक कोड बेस में सीमित कर सकते हैं। मुझे लगता है कि यह सुनिश्चित करने के लिए कि आप अपना ऐप बाज़ार के Free अनुभाग में दिखाई देते हैं, आपको यह टालना चाहिए। इस मामले में, आपको इसे एक नए ऐप के रूप में जमा करना होगा, जिसका अर्थ है एक नया GUID।

AFAIK (शायद किसी के पास कोई और तरीका है), आपको एक नई परियोजना बनाना होगा और एक अलग निर्माण करना होगा। आप अपने मौजूदा कोड बेस को अधिकांश भाग के लिए शामिल कर सकते हैं, लेकिन यदि आप Trial API शामिल नहीं करते हैं तो आप दो संस्करणों के साथ समाप्त हो जाएंगे। चूंकि यह एक नई परियोजना है, इसलिए आप जो भी चाहें टाइल आइकन बदल सकते हैं।

1

जेफ ब्रांड ने एक बहुत अच्छी परीक्षण मैनेजर लाइब्रेरी भी तैयार की है जो आपको विभिन्न प्रकार के परीक्षण प्रबंधन को लागू करने की अनुमति देती है।

परिदृश्य की तरह:

  • उपयोग
  • उपयोग
  • की टी मिनट बाद समाप्त हो जाती के एन संख्या बाद समाप्त हो जाती ...

http://www.slickthought.net/post/2010/08/30/Managing-Trial-Applications-for-Windows-Phone-7.aspx

17

आप एक 'ट्रायल' संस्करण का उपयोग कर के बिना एक ही परियोजना में अपने एप्लिकेशन का एक निःशुल्क और सशुल्क संस्करण है चाहते हैं, यह है कि कैसे मैं यह कर:

प्रत्येक परियोजना एक भी ProductID जो अलग असाइन किया गया है इंस्टॉल समय पर अन्य ऐप्स से ऐप। आप पहली परियोजना में सभी फाइलों के लिए एक दूसरी परियोजना और लिंक बना सकते हैं, लेकिन प्रोजेक्ट बढ़ने के साथ ही रखरखाव की आवश्यकता होगी। मेरा समाधान बिल्ड कॉन्फ़िगरेशन का उपयोग करने के लिए मुफ्त या सशुल्क ऐप का चयन करने की अनुमति देता है।

सबसे पहले आपको ऐप के प्रत्येक संस्करण के लिए एक अलग उत्पाद आईडी की आवश्यकता है। यह ProductID को प्रकट फ़ाइल 'Properties/WMAAppManifest.xml' में घोषित किया गया है। तो पहला कदम WMAAppManifest.xml के दो संस्करणों को बनाना है। मैं उन्हें WMAAppManifestPaid.xml और WMAAppManifestFree.xml कहता हूं।

इनमें से प्रत्येक मेनिफेस्ट फाइलों में, उत्पाद आईडी के लिए एक अलग GUID प्रदान करें और मुक्त संस्करण का शीर्षक भी बदलें ताकि आप इंस्टॉल होने पर उन्हें अलग कर सकें।

अगला हमें परियोजना में दो नए बिल्ड कॉन्फ़िगरेशन जोड़ने की आवश्यकता है। मैं उन्हें रिलीज फ्री और डीबग फ्री कहता हूं।

इसके बाद आप जोड़ने के कुछ पूर्व बिल्ड सभी निर्माण configuations के घटनाक्रम उचित प्रकट फाइल कॉपी करने के लिए:

$ (ConfigurationName) यदि == रिलीज प्रति $ (ProjectDir) \ गुण \ WMAppManifestPaid.xml $ (ProjectDir) \ Properties \ WMAppManifest.xml यदि $ (कॉन्फ़िगरेशन नाम) == डीबग कॉपी $ (ProjectDir) \ Properties \ WMAppManifestPaid.xml $ (ProjectDir) \ Properties \ WMAppManifest.xml अगर $ (कॉन्फ़िगरेशन नाम) == रिलीज़ फ्री कॉपी $ (ProjectDir) \ Properties \ WMAppManifestFree.xml $ (ProjectDir) \ Properties \ WMAppManifest.xml यदि $ (कॉन्फ़िगरेशन नाम) == डीबग फ्री कॉपी $ (ProjectDir) \ Properties \ WMAppManifestFree.xml $ (ProjectDir) \ Properties \ WMAppManifest.xml

अब आप बिल्ड कॉन्फ़िगरेशन को बदलकर या तो ऐप के निःशुल्क या भुगतान किए गए संस्करणों को बनाने में सक्षम होना चाहिए।

अगला, वास्तव में भुगतान संस्करण की तुलना में मुक्त संस्करण को अलग करने की अनुमति देने के लिए, जैसे सीमित सीमाएं, विभिन्न पृष्ठों आदि दिखाते हुए, आपको एक सशर्त संकलन प्रतीक, जैसे कि दो मुक्त बिल्ड कॉन्फ़िगरेशन में FREE_VERSION जोड़ने की आवश्यकता है।

तो आप बस जैसे कोड बदलने के लिए संकलक निर्देशों का उपयोग कर सकते हैं:

#if FREE_VERSION 
    s = "My App Free"; 
#else 
    s = "My App Paid"; 
#endif 
+1

बिल्कुल सही - बिल्कुल मुझे क्या चाहिए। फाइलों को जोड़ने से मेरे मामले के लिए एक रखरखाव दुःस्वप्न होगा। –

+0

मुझे एहसास है कि यह पुराना है लेकिन प्रोजेक्ट लिंकर बहुत अच्छा है, http://msdn.microsoft.com/en-us/library/ff648745.aspx –

+0

इसके लिए आपको बहुत कुछ धन्यवाद, मुझे दो बनाए रखने की कोशिश करने में कई परेशानियों को बचाया कोड बेस !! :) –

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