android - Google Play द्वारा उपलब्ध कराए गए अपलोड कुंजी के साथ एक APK पर हस्ताक्षर करना




google-play keytool (3)

संक्षिप्त उत्तर:

आप Google Play कंसोल में अपलोड प्रमाणपत्र के साथ एक एपीके साइन नहीं कर सकते।

उम्मीद है कि यह जवाब दूसरों को समय बर्बाद करने से रोकेगा क्योंकि मैंने ऐसा समाधान खोजने की कोशिश की थी जो मौजूद नहीं है।

दीर्घ उत्तर:

Google Play समर्थन लेख प्रबंधित करें अपने एप्लिकेशन हस्ताक्षर कुंजी को समझने के लिए आवश्यक जानकारी है।

" कुंजी और महत्वपूर्ण परिभाषाओं के प्रकार " अनुभाग से:

  • अपलोड कुंजी (मौजूदा ऐप्स के लिए वैकल्पिक) : एक नई कुंजी जिसे आप प्रोग्राम में अपने नामांकन के दौरान उत्पन्न करते हैं। आप Play Keysole पर अपलोड करने से पहले भविष्य के सभी APK को साइन करने के लिए अपलोड कुंजी का उपयोग करेंगे।
  • निजी कुंजी : एपीके हस्ताक्षरों के लिए, यह एपीके पर हस्ताक्षर करने के लिए उपयोग की जाने वाली कुंजी है। निजी कुंजी को गुप्त रखना चाहिए।
  • सार्वजनिक कुंजी : एपीके हस्ताक्षर के लिए, यह एपीके के हस्ताक्षर को सत्यापित करने के लिए उपयोग की जाने वाली कुंजी है। सार्वजनिक कुंजी सभी को दिखाई दे सकती है।
  • प्रमाणपत्र : एक प्रमाण पत्र में एक सार्वजनिक कुंजी और साथ ही कुछ अतिरिक्त पहचान के बारे में जानकारी होती है कि किसके पास कुंजी है।

फिर, ध्यान दें कि Google Play कंसोल में, आप केवल एक अपलोड प्रमाणपत्र डाउनलोड कर सकते हैं ( अपलोड कुंजी के विपरीत)। उपरोक्त परिभाषाओं के आधार पर, हम यह निष्कर्ष निकाल सकते हैं:

  1. अपलोड कुंजी एक निजी कुंजी है , क्योंकि APK को साइन करने के लिए अपलोड कुंजी का उपयोग किया जाता है।
  2. अपलोड प्रमाणपत्र में निजी कुंजी नहीं होती है , क्योंकि सामान्य रूप से प्रमाणपत्र में सार्वजनिक कुंजी होती है, न कि निजी कुंजी (इसमें अपवाद हैं, लेकिन इस मामले में नहीं हैं)।
  3. इसलिए, एपीके को अपलोड करने के लिए अपलोड प्रमाणपत्र का उपयोग नहीं किया जा सकता है , इससे कोई फर्क नहीं पड़ता कि आप क्या कदम उठाते हैं। इसमें सिर्फ आवश्यक जानकारी नहीं है।

आगे के साक्ष्य के रूप में, यह अन्य एसओ प्रश्न (एंड्रॉइड साइनिंग त्रुटि: विश्वसनीय प्रमाण पत्र प्रविष्टियां पासवर्ड से सुरक्षित नहीं हैं) एक ही मुद्दे को संबोधित करता है, हालांकि चूंकि यह अपलोड कुंजी / प्रमाण पत्र को संदर्भित नहीं करता है, इसलिए इस प्रश्न के निहितार्थ को याद करना आसान है - - यह कि आप Google Play से कुछ भी डाउनलोड नहीं कर सकते इस समस्या को हल करेंगे।

इसके विपरीत का दावा करता है

हालाँकि कुछ लोग Google Play से डाउनलोड किए गए आपके अपलोड प्रमाण पत्र के साथ आपके एपीके पर हस्ताक्षर करना संभव है, लेकिन मुझे लगता है कि वे गलत समझ रहे हैं कि क्या हुआ है। ध्यान दें कि आम तौर पर ये रिपोर्ट इंगित करती है कि आपको कुंजी उत्पन्न करने के लिए उपयोग किए जाने वाले मूल कीस्टॉर में प्रमाण पत्र आयात करना होगा। वास्तव में, जब उन्हें लगता है कि वे एपीके पर हस्ताक्षर करने के लिए आवश्यक (निजी) कुंजी का आयात कर रहे हैं, तो वे वास्तव में सार्वजनिक कुंजी का आयात कर रहे हैं और कुंजी-जोड़ी के सार्वजनिक आधे हिस्से को अधिलेखित कर रहे हैं - उसी सार्वजनिक कुंजी के साथ जो प्रमाणपत्र में निर्यात की गई थी पहली जगह में।

अगर वे आयात प्रक्रिया को किए बिना उस उपनाम के साथ एपीके पर हस्ताक्षर करने का प्रयास करते, तो यह भी काम करता। (आयात ने उनके लिए कुछ भी नहीं बदला।) यही कारण है कि आयात केवल तभी काम करना प्रतीत होता है जब मूल कीस्टोर के साथ उपयोग किया जाता है, न कि नए कीस्टोर के साथ।

तो आप इसके बजाय क्या कर सकते हैं?

यह आपकी स्थिति पर निर्भर करता है। चूंकि लक्ष्य एक एपीके पर हस्ताक्षर करना है और सफलतापूर्वक इसे Google पर अपलोड करना है:

  1. "Google Play द्वारा एप्लिकेशन साइनिंग" की स्थापना के दौरान कुछ बिंदु पर, किसी ने एक अपलोड कुंजी उत्पन्न की और इसे Google के साथ पंजीकृत किया। अगर आपके पास अभी भी (निजी) कुंजी एक कीस्टॉर में कहीं है, तो ठीक है कि आपको अपने एपीके पर हस्ताक्षर करने की आवश्यकता है।
  2. यदि आपने keytool अलावा कुछ टूल के साथ अपलोड कुंजी उत्पन्न की है और फिर इसे अपने कीस्टोर में आयात किया है, और आपके पास अभी भी मूल जनरेट की गई फ़ाइल है, तो आप निजी कुंजी को फिर से एक अलग कीस्टोर में आयात कर सकते हैं, जो भी प्रक्रिया का उपयोग पहली बार किया गया था।
  3. यदि उपरोक्त में से कोई भी विकल्प नहीं है, तो आप एक नई अपलोड कुंजी बनाने के लिए अपने एप्लिकेशन साइनिंग कुंजी आलेख प्रबंधित करें के "नया अपलोड कुंजी बनाएं" अनुभाग में दिए गए निर्देशों का पालन कर सकते हैं और Google को इसमें स्वैप कर सकते हैं।

मैं Google Play ऐप साइनिंग का उपयोग करते हुए Google Play पर ऐप अपलोड करने का तरीका जानने की कोशिश कर रहा हूं।

मैंने जो किया था यह रहा:

  1. एक ऐप बनाया
  2. उस एप्लिकेशन के लिए एक कुंजी उत्पन्न करने के लिए keytool.exe का उपयोग किया गया
  3. एप को गूगल प्ले पर अपलोड किया
  4. Google Play App Signing में दाखिला लिया
  5. सफलता के बिना फिर से एप्लिकेशन अपलोड करने का प्रयास करें।

यह शिकायत करता है कि प्रमाण पत्र प्रमाण पत्र नहीं है

नए एपीके को प्रोडक्शन पर अपलोड करें

अपलोड विफल हुआ आपने एक एपीके अपलोड किया है जो अपलोड प्रमाणपत्र के साथ हस्ताक्षरित नहीं है। आपको एक ही प्रमाण पत्र का उपयोग करना चाहिए। अपलोड प्रमाणपत्र में फिंगरप्रिंट है: [SHA1: 0C: ...] और उस प्रमाणपत्र पर हस्ताक्षर करने के लिए उपयोग किए गए प्रमाणपत्र में आपके द्वारा अपलोड किया गया फिंगरप्रिंट है: [SHA1: 2D: ...]

थोड़ी देर खोजने के बाद। मुझे पता है कि मेरे Google Play कंसोल पर प्रमाणित प्रमाणित पोस्ट को मेरे कीस्टॉर में कैसे रखा जाए। कुछ इस तरह:

keytool.exe -importcert -file upload.pem -keystore myapp-release-key.keystore

प्रमाणपत्र में प्रतीत होता है। जब मैं कीस्टोर की सामग्री को सूचीबद्ध करता हूं, तो यहां मुझे क्या मिलेगा:

keytool.exe -list -keystore trackcoachfull-release-key.keystore keystore पासवर्ड दर्ज करें:

कीस्टोर प्रकार: JKS कीस्टोर प्रदाता: SUN

आपके कीस्टॉर में 2 प्रविष्टियाँ हैं

myappfull, 18 मई, 2017, PrivateKeyEntry, प्रमाणपत्र फिंगरप्रिंट (SHA1): 2D: ... अपलोडक, 19 मई, 2017, विश्वसनीयकंट्री, प्रमाणपत्र फिंगरप्रिंट (SHA1): 0C: ...

अब, जहाँ मैं अवरुद्ध हूँ ...

एंड्रॉइड स्टूडियो में, मैं अपलोड करने वाले के साथ एक हस्ताक्षरित एपीके जनरेट करने की कोशिश करता हूं।

बिल्ड> जेनरेट साइन अप करें एपीके का चयन करें ऊपर दिए गए कीस्टोर का चयन करें कीस्टोर पासवर्ड दर्ज करें कुंजी के रूप में अपलोड करें का चयन करें मैं कुंजी पासवर्ड दर्ज करने के लिए मजबूर हूं।

Android स्टूडियो में त्रुटि:

त्रुटि: कार्य के लिए निष्पादन विफल रहा ': ऐप: packageFullRelease'।

com.android.ide.common.signing.KeytoolException: स्टोर से कुंजी अपलोड को पढ़ने में विफल "C: \ Users \ Admin \ AndroidStudioProjects \ keystores \ myappfull-release-key .Stystore": विश्वसनीय प्रमाणपत्र प्रविष्टियाँ पासवर्ड से सुरक्षित नहीं हैं।

मेरा सवाल यह है:

आप Google Play द्वारा प्रदान की गई अपलोड कुंजी के साथ एक एपीके साइन कैसे बनाते हैं?

धन्यवाद


कभी-कभी क्या होता है: एक एकल कीस्टोर के पास दो प्रमाणपत्र होते हैं और वे उपनाम नाम या पासवर्ड द्वारा विभेदित होते हैं। एक कीस्टोर की दोनों प्रविष्टियों के गुणों को देखने का प्रयास करें। मुझे यकीन है कि कोई भी एक सही उपनाम के साथ एक वैध कुंजी है। इस कमांड का उपयोग करें:

कीटूल-लिस्ट -स्टीस्टोर वेदरफॉरकास्ट.जक्स (आपका कीस्टोर)

पासवर्ड के लिए संकेत देने पर एंटर दबाएं।

आपको दो प्रविष्टियाँ दिखाई देंगी और पहला शब्द आपके कीस्टोर के लिए उपनाम होगा।

इसने मेरे लिए काम किया और मुझे लगता है कि निश्चित रूप से यह आपके लिए काम करेगा।


मैं Google Play द्वारा प्रदान की गई अपलोड कुंजी का उपयोग करके अपना एपीके साइन करने में सक्षम था। यहाँ एक नए ऐप के लिए मेरे द्वारा अनुसरण किए गए चरण हैं:

  1. एक कीस्टर बनाएं और Android स्टूडियो का उपयोग करके एक हस्ताक्षर कुंजी जोड़ें
  2. (1) में बनाई गई कुंजी का उपयोग करके एप्लिकेशन पर हस्ताक्षर करें
  3. एपीके को Google Play पर अपलोड करें
  4. Google Play कंसोल से "अपलोड प्रमाणपत्र" डाउनलोड करें
  5. चरण keytool.exe -importcert -file upload_cert.der -keystore <keystorefile> (1) में बनाए गए कीस्टोर के लिए डाउनलोड किए गए प्रमाणपत्र को कमांड keytool.exe -importcert -file upload_cert.der -keystore <keystorefile> का उपयोग करके keytool.exe -importcert -file upload_cert.der -keystore <keystorefile>
  6. यह संकेत देना चाहिए कि "प्रमाणपत्र पहले से ही काइलोर में उपनाम के तहत मौजूद है। क्या आप अभी भी इसे जोड़ना चाहते हैं? [नहीं]:"
  7. 'Y' टाइप करें और एंटर दबाएँ
  8. एक पुष्टिकरण संदेश दिखाई देगा
  9. बाद के निर्माण के लिए (2) के रूप में एक ही प्रक्रिया का उपयोग कर एप्लिकेशन पर हस्ताक्षर

यहां ध्यान देने वाली महत्वपूर्ण बात यह है कि स्टेप (6) में, केटूल आयात Google Play से डाउनलोड किए गए मूल प्रमाणपत्र को अपडेट करता है।





android-app-signing