2011-02-14 24 views
17

पर अपने ऐप में अपडेट प्रकाशित करते समय क्या होगा, यह जांचने के लिए कि मैं बाजार में किसी ऐप का एक नया संस्करण प्रकाशित करने जा रहा हूं। बाजार में धकेलने के बाद किसी भी संभावित समस्या से बचने के लिए और लोगों को अपडेट की अधिसूचना मिलने के बाद, मैं ऐप के नए संस्करण के लिए .apk का उपयोग करके अपने फोन पर उस प्रक्रिया को अनुकरण करना चाहता हूं, जिसे मैं प्रकाशित कर दूंगा।मार्केट

उदाहरण के लिए, इसका उपयोग SQLite डीबी का उपयोग करने के लिए एक अद्यतन है।

निकटतम मुझे लगता है Android डीबग ब्रिज (एडीबी) उपयोग कर रहा है आदेश का उपयोग कर सकते हैं: adb install C:\myApplication.apk मेरे फोन यूएसबी केबल के माध्यम से मेरे पीसी से जुड़ा के साथ । (पैरामीटर आपके पीसी पर जहां भी आपकी एपीके फ़ाइल है) का प्रतिनिधित्व करता है।

जब मैं ऐसा करते हैं, अगर एप्लिकेशन पहले से ही मेरे फोन पर स्थापित किया गया है, मैं एक त्रुटि संदेश मिलता है:

विफलता पहले ही विफल मौजूद है स्थापित करें।

मैं अपने फोन से मौजूदा एप्लिकेशन को हटाते हैं, adb install आदेश ठीक काम करता है। तो, ऐसा लगता है कि इसका उपयोग केवल उस ऐप को इंस्टॉल करने के लिए किया जा सकता है जो वर्तमान में आपके फोन पर मौजूद नहीं है।

क्या पर कोई तरीका है अद्यतन प्रक्रिया का अनुकरण करें? अगर adb update कमांड था तो यह अच्छा होगा, लेकिन मुझे यह नहीं दिखाई देता है।

उत्तर

1

पर स्थापित करने का मतलब है मुझे लगता है कि अपने त्रुटि है, क्योंकि आपके पास बाजार संस्करण स्थापित हस्ताक्षर किए हैं और अपने एक डिबग संस्करण पर हस्ताक्षर किए स्थापित करने के लिए कोशिश कर रहा। यदि आप इसे अपनी बाजार कुंजी से साइन करते हैं तो इसे ठीक इंस्टॉल करना चाहिए।

+0

यह सच नहीं है। यदि ऐप पहले से स्थापित है, तो साइनिंग कुंजी से कोई फर्क नहीं पड़ता, 'adb install' को सही ढंग से इंस्टॉल करने के लिए '-r' विकल्प की आवश्यकता होती है। और यदि हस्ताक्षर कुंजी गलत है, तो आपको त्रुटि INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES [जैसा कि नीचे @charlest द्वारा टिप्पणी में उल्लिखित है) प्राप्त करें (http://stackoverflow.com/questions/4993946/how-to-test-what-will-happen-when- आप प्रकाशित करें-एक-अद्यतन करने के लिए आपके एप्लिकेशन के तहत करने के लिए-marke # comment5580744_4994089)। –

2

निकटतम मुझे लगता है कि आप कहीं भी एपीके डाल सकते हैं, और इसे फोन पर डाउनलोड कर सकते हैं। यह वास्तविक बाजार परिस्थितियों में सबसे नज़दीकी होने के बारे में है, केवल अंतर यह है कि आपको "अज्ञात स्रोत" विकल्प जोड़ने की आवश्यकता है।

(एक sidenote पर: आप एक ही पैकेज के नाम के साथ एक apk इंस्टॉल करने में त्रुटि, लेकिन एक अलग हस्ताक्षर करने के प्राप्त कर सकते हैं।)

31

विकल्प -r उपयोग करने का प्रयास करने के लिए adb install:

एडीबी स्थापित [ -l] [-r] [-s] - डिवाइस को यह पैकेज फ़ाइल धक्का और इसे स्थापित ('एल' आगे-ताला अर्थ है कि एप्लिकेशन) ('-r' का अर्थ है, एप्लिकेशन को पुनर्स्थापित रखने अपने डेटा) ('-s' एसडी कार्ड के बजाय आंतरिक भंडारण)

+0

धन्यवाद! उस पर इसका ख्याल रखा। मैं Google साइट पर इंस्टॉल करने के विकल्पों को देख रहा था: मेरे पीसी पर वास्तविक कमांड चलाने से आपके द्वारा उल्लिखित विकल्पों को दिखाया गया। एक चीज़ जो मैंने पाई: यदि आप इसे एक .apk से प्रतिस्थापित करने का प्रयास करते हैं जिसे एक अलग कीस्टोर के साथ हस्ताक्षरित किया गया था, तो आपको त्रुटि संदेश मिलेगा: INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES। तो, केवल प्रतिबंध यह है कि आपको इसे एक .apk से प्रतिस्थापित करना होगा जो उसी प्रमाणपत्र के साथ हस्ताक्षरित था। – charlest

+0

@charlest ग्रेट। हस्ताक्षर की बात एक सुरक्षा उपाय है। असल में इसका मतलब डिवाइस पर अपलोड करने के लिए पुराने संस्करणों को रखना और फिर (वृद्धिशील) अपग्रेड परीक्षण करना है। –

+1

यह सही है, क्योंकि '-r' विकल्प ऐप के लिए डेटाबेस फ़ाइल को संरक्षित करता है।जब अपग्रेड किए गए ऐप को पहली बार चलाया जाता है, तो डेटाबेस सहायक का परीक्षण होता है, परीक्षण के लिए आवश्यक 'onUpdate() 'को कॉल करना। –