Google Play ऐप साइनिंग सक्षम करने के लिए कैसे


113

मुझे लगता है कि बहुत सारे डेवलपर Google I / O 2017 में प्रस्तुत नए Google Play App साइनिंग फ़ीचर के बारे में अधिक जानने की कोशिश कर रहे हैं।

Google Play के अंदर एप्लिकेशन को साइन करने के लिए कीस्टोर को संग्रहीत करने की क्षमता आपको कीस्टोर को सुरक्षित रूप से संग्रहीत करने के प्रयास को बचाती है और सिस्टम को हार्डवेयर और ओएस विशेषताओं के आधार पर हर डिवाइस को दी जाने वाली एपीके को अनुकूलित करने में मदद कर सकती है।

आप इस विषय के बारे में आधिकारिक दस्तावेज में अधिक पढ़ सकते हैं: https://developer.android.com/studio/publish/app-signing.html#google-play-app-signing

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

जवाबों:


189

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

पहले से ही डेवलपर्स के 99% है कि आवश्यकताएँ :

  1. Android स्टूडियो

  2. JDK 8 और स्थापना के बाद आपको टर्मिनल कमांड को सरल बनाने के लिए अपने उपयोगकर्ता स्थान में एक पर्यावरण चर स्थापित करना होगा। : विंडोज में आप इस जोड़ने की जरूरत है x64 C:\Program Files\Java\{JDK_VERSION}\binके लिए Pathवातावरण चर। (यदि आप नहीं जानते कि यह कैसे करना है तो आप विंडोज 10 Pathपर्यावरण चर में एक फ़ोल्डर जोड़ने के लिए मेरा गाइड पढ़ सकते हैं )।

चरण 0 : Google Play डेवलपर कंसोल खोलें, फिर रिलीज़ प्रबंधन -> ऐप साइनिंग पर जाएं

यहां छवि विवरण दर्ज करें

एप्लिकेशन साइनिंग टीओएस स्वीकार करें।

यहां छवि विवरण दर्ज करें

चरण 1 : नीचे की छवि के समान बटन पर क्लिक करके PEPK टूल डाउनलोड करें

यहां छवि विवरण दर्ज करें

चरण 2 : एक टर्मिनल खोलें और टाइप करें:

java -jar PATH_TO_PEPK --keystore = PATH_TO_KEYSTORE - आलियास = ALIAS_YOU_USE_TO_SIGN_APK --output = PATH_TO_OUTPUT_FILE --enc एन्क्रिप्शनkey = GOOGLE_ENCRYPTION_KEY

लीजेंड:

  • PATH_TO_PEPK = चरण 1 में डाउनलोड किए गए pepk.jar के लिए पथ , C:\Users\YourName\Downloads\pepk.jarविंडोज उपयोगकर्ताओं के लिए कुछ ऐसा हो सकता है ।
  • PATH_TO_KEYSTORE = पथ कास्ट करने के लिए जिसका उपयोग आप अपनी रिलीज़ को साइन इन करने के लिए करते हैं। प्रकार की फ़ाइल हो सकती है * .Stystore या * .jks या बिना एक्सटेंशन के। जैसे कुछ C:\Android\mykeystoreया C:\Android\mykeystore.keystore...
  • ALIAS_YOU_USE_TO_SIGN_APK = उपनाम का नाम जिसका आप उपयोग करते हैं, रिलीज़ पर हस्ताक्षर करने के लिए।
  • PATH_TO_OUTPUT_FILE = .pem एक्सटेंशन के साथ आउटपुट फ़ाइल का पथ, कुछ इस तरहC:\Android\private_key.pem
  • GOOGLE_ENCRYPTION_KEY = यह एन्क्रिप्शन कुंजी हमेशा समान होनी चाहिए। आप इसे ऐप साइनिंग पेज में पा सकते हैं, इसे कॉपी और पेस्ट कर सकते हैं। इस रूप में होना चाहिए:eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

उदाहरण:

जावा -जर "C: \ Users \ YourName \ Downloads \ pepk.jar" --keystore = "C: \ Android \ mykeystore" - आलियास = myalias --output = "C: \ Android \ Private \ _key.pem" - encryptionkey = eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

Enter दबाएँ और आपको क्रम में प्रदान करना होगा:

  1. कस्तूरी पासवर्ड
  2. उपनाम पासवर्ड

यदि सब कुछ ठीक हो गया है, तो अब आपके पास PATH_TO_OUTPUT_FILE फ़ोल्डर में एक फ़ाइल होगी private_key.pem

चरण 3 : Private_key.pem फ़ाइल को नीचे दी गई छवि के समान बटन पर क्लिक करके अपलोड करें

यहां छवि विवरण दर्ज करें

चरण 4 : एंड्रॉइड स्टूडियो का उपयोग करके एक नया कीस्टोर फ़ाइल बनाएं।

आप अपने एपीपी के अगले नियम पर हस्ताक्षर करने के लिए भविष्य में आवश्यक हैं, इस प्रश्न को भूल गए

अपने Android प्रोजेक्ट्स में से एक खोलें (यादृच्छिक में से एक चुनें)। बिल्ड पर जाएं -> साइन किए गए एपीके को जनरेट करें और नया बनाएं

यहां छवि विवरण दर्ज करें

अब आपको आवश्यक फ़ील्ड भरना चाहिए।

कुंजी स्टोर पथ आपके द्वारा बनाए गए नए कीस्टोर का प्रतिनिधित्व करेगा, दाईं ओर 3 डॉट्स आइकन का उपयोग करके एक फ़ोल्डर और एक नाम चुनें, मैंने चुना C:\Android\upload_key.jks(.jks एक्सटेंशन स्वचालित रूप से जोड़ा जाएगा)

नोट: मैंने uploadनए उपनाम नाम के रूप में उपयोग किया है, लेकिन यदि आपने पहले अलग-अलग एप्लिकेशन पर हस्ताक्षर करने के लिए अलग-अलग उपनामों के साथ एक ही कीस्टोर का उपयोग किया है, तो आपको उसी उपनाम का चयन करना चाहिए जिसका नाम आपने पहले मूल कीस्टोर में रखा था।

यहां छवि विवरण दर्ज करें

समाप्त होने पर ओके दबाएं, और अब आपके पास एक नया upload_key.jksकीस्टॉर होगा। अब आप Android Studio बंद कर सकते हैं।

चरण 5 : हमें नए बनाए गए upload_key.jksकिस्टोर से अपलोड प्रमाणपत्र निकालने की आवश्यकता है । एक टर्मिनल खोलें और टाइप करें:

keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH-Kalas UPLOAD_KEYSTORE_ALIAS -file PATH_TO_OUTPUT_FILE

लीजेंड:

  • UPLOAD_KEYSTORE_PATH = आपके द्वारा अभी-अभी अपलोड कीस्टोर का पथ। इस मामले में था C:\Android\upload_key.jks
  • UPLOAD_KEYSTORE_ALIAS = अपलोड कीस्टोर से संबद्ध नया उपनाम। इस मामले में था upload
  • PATH_TO_OUTPUT_FILE = .pem एक्सटेंशन के साथ आउटपुट फ़ाइल का पथ। कुछ इस तरह C:\Android\upload_key_public_certificate.pem

उदाहरण:

keytool -export -rfc -keystore "C: \ Android \ upload_key.jks" -alias अपलोड -file "C: \ Android \ upload_key_public_certificate.pem"

Enter दबाएं और आपको कीस्टोर पासवर्ड प्रदान करना होगा।

अब अगर सब कुछ ठीक हो गया है, तो आपके पास PATH_TO_OUTPUT_FILE नामक फ़ोल्डर में एक फ़ाइल होगी upload_key_public_certificate.pem

चरण 6 : upload_key_public_certificate.pemनीचे दी गई छवि के समान बटन पर क्लिक करके फ़ाइल अपलोड करें

यहां छवि विवरण दर्ज करें

चरण 7 : ऐप साइनिंग पेज के अंत में ENROLL बटन पर क्लिक करें ।

यहां छवि विवरण दर्ज करें

अब हर नई रिलीज़ upload_key.jksएपीके को Google Play डेवलपर कंसोल में अपलोड किए जाने से पहले चरण 4 में बनाए गए कीस्टोर और अलायस के साथ हस्ताक्षर करना होगा ।

और अधिक संसाधनों:

क्यू एंड ए

प्रश्न: जब मैं नए upload_key keystore के साथ हस्ताक्षरित APK अपलोड करता हूं, तो Google Play एक त्रुटि दिखाता है जैसे: आपने एक अहस्ताक्षरित एपीके अपलोड किया। आपको एक हस्ताक्षरित एपीके बनाने की आवश्यकता है

ए: रिलीज एपीके के निर्माण के दौरान दोनों हस्ताक्षर (वी 1 और वी 2) के साथ एपीके पर हस्ताक्षर करने की जांच करें। अधिक जानकारी के लिए यहां पढ़ें ।

UPDATED

चरण 4,5,6 अपलोड कुंजी बनाने के लिए हैं जो मौजूदा एप्लिकेशन के लिए वैकल्पिक हैं

"अपलोड कुंजी (मौजूदा ऐप्स के लिए वैकल्पिक): प्रोग्राम में अपने नामांकन के दौरान आपके द्वारा बनाई गई एक नई कुंजी। आप सभी भविष्य के APK को प्ले कंसोल में अपलोड करने से पहले साइन करने के लिए अपलोड कुंजी का उपयोग करेंगे।" https://support.google.com/googleplay/android-developer/answer/7384423


3
आपका वॉकथ्रू सुपर सहायक है! उन्हें इसे आधिकारिक वेबसाइट पर डाल देना चाहिए lol आपके उदाहरणों के
मार्गनामे

3
उद्धरणों की आवश्यकता केवल तभी होती है जब आपके पास आपके रास्तों के अंदर कम से कम एक स्थान हो, लेकिन यही वह तरीका है जो हर कंसोल कमांड काम करता है। तो आपको उद्धरण का उपयोग करना होगा यदि आपका रास्ता है: "C:\My Path\MyName"लेकिन नहीं अगर पथ है C:\MyPath\MyName। Btw शुक्रिया :)
MatPag

1
@layth नया कीस्टॉर बनाना Step 4गाइड की है: D
MatPag

1
मैंने ऐसा किया था, लेकिन जब मुझे आपका नया कीस्टोर डायल मिला तो उसका कीस्टोर पथ और पासवर्ड फ़ील्ड रिक्त थे, इसलिए मैंने उन्हें पुराने कीस्टोर पर इंगित किया और उसका पुराना पासवर्ड दर्ज किया - btw वर्तमान में "keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTAL अधिक" फ़ाइल PATH_TO_OUTPUT_FILE "शिकायत करता रहता है कि यह पता नहीं है कि कीटल का अर्थ क्या है। मैंने "C: \ Program Files \ Java \ jdk1.8.0_25 \ bin \ keytool.exe" जोड़ने की कोशिश की, लेकिन यह काम नहीं किया, संभवतः क्योंकि मुझे नहीं पता कि इसे कहाँ रखा जाए ..
NukeouT

9
ऐसा लगता है कि Google ने प्रक्रिया बदल दी है, क्योंकि मुझे अब PEPK टूल नहीं मिल रहा है।
एंड्रिया मोटो

31

एक बहुत सरल उपाय है जिसमें एक मिनट लगेगा।

  1. Google Play कंसोल में, रिलीज़ प्रबंधन -> एप्लिकेशन साइनिंग चुनें
  2. पहला विकल्प चुनें, एंड्रॉइड स्टूडियो के साथ उत्पन्न एन्क्रिप्टेड निजी कुंजी के साथ एक (या ऐसा कुछ; मैं उस पृष्ठ को देखने के लिए वापस मुड़ नहीं सकता)
  3. Android Studio में Build -> Generate Signed बंडल / APK ... से अपना Android App बंडल (.aap फ़ाइल) जेनरेट करें , Android App बंडल विकल्प चुनें और निर्यात एन्क्रिप्ट की गई कुंजी की जाँच करना न भूलें (अपने ऐप को Google Play App को पंजीकृत करने की आवश्यकता है) हस्ताक्षर) विकल्प। यदि आपके पास कीस्टॉर उत्पन्न नहीं है, तो एक विज्ञापन-हॉक उत्पन्न करें।
  4. अब "मुश्किल" भाग। .Aap के जेनरेट होने के बाद, Android Studio उस स्थान के लिए एक पथ से युक्त निचले दाएं कोने में एक सूचना पॉप अप करेगा जहाँ .aap फ़ाइल सहेजी गई है। उसी अधिसूचना में, यदि आप इसका विस्तार करेंगे तो आपको उस मार्ग का एक और लिंक मिलेगा जहां निजी कुंजी को सहेजा गया था (जिसे Private_key.pepk कहा जाता है )। यदि आपको यह सूचना याद आती है, तो चिंता न करें, बस दाईं ओर स्थित ईवेंट लॉग बटन पर क्लिक करके इवेंट लॉग विंडो खोलें और आपको वही जानकारी मिलेगी। उस स्थान को खोलें। मेरे लिए C: \ Users \ yourUser \ .android था

यहां छवि विवरण दर्ज करें

  1. ब्राउज़र में वापस जाएं और APP SIGNING PRIVATE KEY बटन को दबाएं और अपने कंप्यूटर पर निजी कुंजी स्थान पर ब्राउज़ करें।

किया हुआ!

अब आप अपनी रिलीज़ को अपलोड करने में सक्षम हैं जो आपने पहले बनाई थी :) शुभकामनाएँ!


1
यह सबसे अच्छा और अधिक सरल उत्तर है
साइमन

मुझे इतना समय और अधिक महत्वपूर्ण रूप से मन की शांति
बचाई

मुझे यह विकल्प निर्यात एन्क्रिप्ट की गई कुंजी (आपके ऐप Google Play App साइन इन करने के लिए नामांकन करने की आवश्यकता) नहीं मिल रहा है।
जार्विस

मैं वास्तव में बिंदु 5 के एक पूर्ण विवरण की सराहना करूंगा - मुझे यह बटन दिखाई नहीं देता है, यह कहां है, शायद हाल के अपडेट पर लेआउट बदल गया है?
androidneil

ठीक है अच्छा अब मैं उस बारे में उत्सुक होना चाहता हूं कि अगले अपडेट पर क्या करना है ?? जैसे हमें जरूरत है। pepk key को फिर से या हमें उसी कुंजी या नए निजी का उपयोग करके संस्करण 2 पर हस्ताक्षर करना होगा। pepk key pls help
Sunil Chaudhary

15

एंड्रॉइड ऐप बंडल (एएबी) में एंड्रॉइड एप्लिकेशन पैकेज फ़ाइल (एपीके) को माइग्रेट करते समय, प्ले स्टोर में प्रकाशन ऐप ने इस मुद्दे का सामना किया और नीचे इस तरह हल किया गया ...

बिल्डिंग .aabफ़ाइल बनाते समय आपको निम्न निर्यात पथ के लिए स्थान के लिए संकेत मिलता है:

यहां छवि विवरण दर्ज करें
यहां छवि विवरण दर्ज करें दूसरी छवि में आपको एन्क्रिप्टेड कुंजी निर्यात पथ स्थान मिलता है, जहां .pab फ़ाइल बनाते समय हमारा .pepk विशिष्ट फ़ोल्डर में संग्रहित करेगा।

एक बार जब आप Google Play कंसोल में प्ले स्टोर क्रेडेंशियल के लिए लॉग इन करते हैं: बाईं ओर से अपनी परियोजना का चयन करें ऐप साइनिंग विकल्प जारी करें प्रबंधन जारी करें: ऐप डाउनलोड करना यहां छवि विवरण दर्ज करें

आपको Google App साइनिंग प्रमाणन विंडो ACCEPT मिलेगी।

उसके बाद आप तीन रेडियो बटन चुन लेंगे **

Android Studio रेडियो बटन से निर्यात की गई एक कुंजी अपलोड करें

**, यह नीचे के रूप में आप एपीपी हस्ताक्षर निजी कुंजी बटन का विस्तार होगा

यहां छवि विवरण दर्ज करें

बटन पर क्लिक करें और .pepkफ़ाइल चुनें ( .aabउपरोक्त के रूप में फ़ाइल बनाते समय हम संग्रहीत हैं)

अन्य सभी विकल्प पढ़ें और सबमिट करें।

एक बार सफलतापूर्वक आप एप्लिकेशन रिलीज़ पर वापस जा सकते हैं और .ab फ़ाइल ब्राउज़ करें और RollOut को पूरा करें ...

@Ambilpura


ठीक है अच्छा अब मैं उस बारे में उत्सुक होना चाहता हूं कि अगले अपडेट पर क्या करना है ?? जैसे हमें जरूरत है। pepk key को फिर से या हमें उसी कुंजी या नए निजी का उपयोग करके संस्करण 2 पर हस्ताक्षर करना होगा। pepk key pls help
Sunil Chaudhary

मेरी समझ के अनुसार, अगली बार के लिए बनाने की आवश्यकता नहीं है, यू पुरानी .pepk कुंजी का उपयोग कर सकते हैं ....
अंबिलपुरा सुनील कुमार

आप एक अद्यतन के लिए .pepk का उपयोग कैसे करते हैं? मैंने अपने ऐप को अपलोड करते समय Google ऐप साइनिंग का सफलतापूर्वक उपयोग किया था, लेकिन अब एक अपडेट को पुश करने की कोशिश कर रहा हूं और यह नहीं जानता कि कैसे @AmbilpuraSunilKumar
nt95

मुझे भी। मैं सिर्फ प्ले स्टोर में एब अपलोड करता हूं और पूरी तरह से .pepk फाइल को नजरअंदाज करता हूं। यह जानकर अच्छा लगेगा कि ऐप को अपडेट करते समय वास्तव में क्या अच्छा है और क्या करना है।
जूलियन एगर

4

मुझे निम्नलिखित करना था:

  1. Google play कंसोल में एक ऐप बनाएं यहां छवि विवरण दर्ज करें

2.Go to App रिलीज -> उत्पादन का प्रबंधन -> रिलीज जारी करें

3. Google Play App Signing पर जारी रखें यहां छवि विवरण दर्ज करें

4.Create अपलोड सर्टिफिकेट को "keytool -genkey -v -Stystore c: \ path \ to to चलकर" सर्टिफिकेट अपलोड करें।

5. जनरेटेड सर्टिफिकेट (c: \ path \ to to the cert.keystore) के साथ अपना एपीके असाइन करें

6.Upload ने ऐप रिलीज़ में एपीके साइन किया -> प्रोडक्शन प्रबंधित करें -> रिलीज़ रिलीज़

7.By अपलोडिंग एपीके, चरण 4 में उत्पन्न प्रमाण पत्र को ऐप साइनिंग प्रमाणपत्रों में जोड़ा गया है और भविष्य के सभी बिल्ड के लिए आपका हस्ताक्षर प्रमाण पत्र बन गया है।


1
मैंने ठीक यही किया था लेकिन अगर मैं Google Play Store के माध्यम से ऐप इंस्टॉल करता हूं तो मेरे ऐप से Google साइन इन काम नहीं करता है। * लेकिन - अगर मैं रिलीज प्रबंधन पेज से एपीके डाउनलोड करता हूं और इसे मैन्युअल रूप से अपने एमुलेटर / डिवाइस में स्थापित करता हूं, तो यह काम करता है। कोई भी विचार जो मुझे याद आ रहा है?
रघुदेवन शंकर '’

मैंने लगभग 3 घंटे तक हर जगह खोज की और आपने आखिरकार मुझे बचा लिया!
ओलिवर डिक्सन

3

जब आप फैब्रिक का उपयोग सार्वजनिक बीटा रिलीज़ (प्रोडक्ट कॉन्फिग के साथ साइन इन करते हैं ) के लिए करते हैं , तो Google Play ऐप साइनिंग का उपयोग न करें । आपको दो हस्ताक्षरित एप बनाने के बाद करना होगा!

जब आप अधिक प्ले स्टोर (samsung, amazon, xiaomi, ...) में वितरित करते हैं, तो आपको फिर से दो हस्ताक्षरित एप बनाने होंगे।

इसलिए Google Play App Signing से वास्तव में सावधान रहें।

इसे वापस करना संभव नहीं है: / और Google Play ने उत्पादन कुंजी के साथ हस्ताक्षर किए गए एप्स को स्वीकार करने के बाद नहीं किया। Google Play ऐप सक्षम करने के बाद केवल अपलोड कुंजी स्वीकार की जाती है ...

यह वास्तव में CI वितरण जटिल ...

नवीनीकरण के साथ अगले मुद्दे: https://issuetracker.google.com/issues/69285256


1
बोल्ड कैपिटल DON'T USEटाइप की टिप्पणियां खतरनाक हैं। क्या आप इस मुद्दे की व्याख्या कर सकते हैं और समाधान की सिफारिश कर सकते हैं? क्या इसका कोई हल नहीं है? क्या फैब्रिक के लिए दो बार एपीके पर हस्ताक्षर करना इतना कठिन है?
गोचन अरीक

1
एपीके को दो बार साइन करना इतना मुश्किल नहीं है, लेकिन जैसा कि मैं वर्णन करता हूं, आपको दो (या अधिक) एपीके का निर्माण करना होगा जो समान नहीं हैं (इसलिए आप फैब्रिक बीटा पर अलग-अलग फ़ाइल का परीक्षण कर रहे हैं जिससे प्ले स्टोर पर प्रकाशित किया जाएगा)। यह बीटा टेस्टर्स पर निर्माण के परीक्षण के निर्माण का ढीला बिंदु है ... आप किसी अन्य फ़ाइल का परीक्षण कर रहे हैं :)। यह सिर्फ उन लोगों के लिए एक चेतावनी है, जिनके पास कुछ जटिल CI / CD हैं, जिन्हें वे इसे chnage करना चाहिए ...
mtrakal

2
ध्यान दें कि Google Play अब एपीके साइनिंग में नामांकन के बाद भी उत्पादन कुंजी के साथ हस्ताक्षरित APK को स्वीकार करता है।
पियरे

2

निम्न कार्य करें :

"CREATE APPLICATION" having the same name which you want to upload before.
Click create.
After creation of the app now click on the "App releases"
Click on the "MANAGE PRODUCTION"
Click on the "CREATE RELEASE"
Here you see "Google Play App Signing" dialog.
Just click on the "OPT-OUT" button.
It will ask you to confirm it. Just click on the "confirm" button

इसके बाद क्या मैं पहले की तरह ऐप खरीद और सेवाओं को चलाने में परीक्षण कर सकता हूं? क्या आपको इससे संबंधित कोई अनुभव मिला? क्योंकि यहां तक ​​कि मुझे कोई भारी कदम उठाना पसंद नहीं है।
सिद्धार्थ

1
वास्तव में " Google Play ऐप साइनिंग सक्षम करने के लिए कैसे" के लिए एक उपयुक्त उत्तर नहीं है ...
बेन मैडसेन

2
और आप इसे करने के लिए एक उपयुक्त तरीके के रूप में क्या सुझाव देते हैं?
स्टर्लिंग डियाज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.