'Play ऐप्लिकेशन साइनिंग' सुविधा का इस्तेमाल क्यों करें? 'Play ऐप्लिकेशन साइनिंग' में रजिस्टर करने से, आपकी कुंजियां हमेशा सुरक्षित रहती हैं. साथ ही, इससे आपको Android ऐप्लिकेशन बंडल (.aab) के लिए, Play की बेहतर सुविधाएं मिलती हैं. Google को अपने ऐप्लिकेशन बंडल से जनरेट किए गए, ऑप्टिमाइज़ किए गए डिस्ट्रिब्यूशन APK को साइन करने की अनुमति देने पर, आपको कई अहम सेवाएं मिलती हैं. जैसे, अपने-आप सुरक्षा और Gemini के मॉडल का इस्तेमाल करके स्ट्रिंग का अपने-आप अनुवाद होना. गेम को Play Games Sidekick, Play-as-you-download, और पैसे चुकाकर डाउनलोड किए जाने वाले गेम के लिए बिना किसी शुल्क आज़माने की सुविधा जैसी अतिरिक्त सेवाओं का ऐक्सेस मिलता है.
'Play ऐप्लिकेशन साइनिंग' को कॉन्फ़िगर करने के लिए, आपके पास खाते का मालिकाना हक होना चाहिए. इसके अलावा, आपके पास ऐप्लिकेशन को प्रोडक्शन के लिए रिलीज़ करने, उसे कुछ डिवाइसों पर उपलब्ध न कराने, और 'Play ऐप्लिकेशन साइनिंग' का इस्तेमाल करने की अनुमति होनी चाहिए. साथ ही, आपको सेवा की शर्तें स्वीकार करनी होंगी.
सबसे ज़रूरी सिद्धांत
'Play ऐप्लिकेशन साइनिंग' का इस्तेमाल करने पर, आपको दो अलग-अलग कुंजियों का इस्तेमाल करना होता है. इनके बीच के अंतर और इनके टेक्निकल फ़ॉर्मैट को समझना ज़रूरी है. इससे तीसरे पक्ष के एपीआई के साथ पुष्टि करने से जुड़ी समस्याओं से बचा जा सकता है.
| कुंजी का प्रकार | इसका मालिकाना हक किसके पास है? | तकनीकी जानकारी और मकसद |
|
अपलोड पासकोड |
आप (इसे सुरक्षित रखें!) |
|
| ऐप्लिकेशन साइनिंग पासकोड |
Google Play |
|
ध्यान दें: ज़्यादा सुरक्षा के लिए, आपका अपलोड पासकोड और ऐप्लिकेशन साइनिंग पासकोड अलग-अलग होने चाहिए.
Google आपके ऐप्लिकेशन पर कैसे साइन करता है: जब Google, ऐप्लिकेशन साइनिंग पासकोड का इस्तेमाल करके आपके APK जनरेट करता है और उन पर साइन करता है, तब वह apksigner का इस्तेमाल करके आपके ऐप्लिकेशन के मेनिफ़ेस्ट में दो स्टैंप (com.android.stamp.source और com.android.stamp.type) जोड़ता है. इन स्टैंप से यह पक्का होता है कि आपके APK को ओरिजनल हस्ताक्षर करने वाले व्यक्ति के तौर पर सुरक्षित तरीके से ट्रैक किया जा सकता है.
Play ऐप्लिकेशन साइनिंग की सुविधा को सेट अप करना
सेटअप करने की प्रोसेस इस बात पर निर्भर करती है कि आपको नया ऐप्लिकेशन पब्लिश करना है या किसी मौजूदा ऐप्लिकेशन को माइग्रेट करना है.
नए ऐप्लिकेशन के लिए
- अपलोड पासकोड बनाएं: अपनी रिलीज़ के ऐप्लिकेशन बंडल पर साइन करने के लिए, कीस्टोर जनरेट करें. इसे Android Studio में जनरेट किया जा सकता है. इसके अलावा, कमांड लाइन से Java keytool यूटिलिटी का इस्तेमाल करके भी इसे जनरेट किया जा सकता है.
- अपना ऐप्लिकेशन बंडल अपलोड करें: Play Console पर जाएं और नई रिलीज़ तैयार करें. डिफ़ॉल्ट रूप से, ऐप्लिकेशन बंडल अपलोड करने पर Play ऐप्लिकेशन साइनिंग की सुविधा, आपके ऐप्लिकेशन को मैनेज करने और सुरक्षित रखने के लिए, क्रिप्टोग्राफ़िक तरीके से मज़बूत आरएसए 4096-बिट की कुंजी अपने-आप जनरेट करती है. 90% से ज़्यादा नए ऐप्लिकेशन, डिफ़ॉल्ट रूप से इस सुविधा का इस्तेमाल करते हैं. इसे सेट अप करने के लिए, किसी और कार्रवाई की ज़रूरत नहीं होती.
- ऐप्लिकेशन साइनिंग पासकोड बदलना (ज़रूरी नहीं): ऐडवांस डेवलपर, डिफ़ॉल्ट कुंजी को बदल सकते हैं. ऐसा वे तब करते हैं, जब उन्हें अपनी कुंजी को मैनेज करना होता है. इसके लिए, अपनी रिलीज़ के ऐप्लिकेशन के लिए पूरी सुरक्षा देने की सुविधा सेक्शन में जाकर, साइनिंग कुंजी बदलें पर क्लिक करें. इसके अलावा, Google Play की सुरक्षा वाली सुविधाएं > Play Store पर डिस्ट्रिब्यूशन > Play ऐप्लिकेशन साइनिंग पर जाएं पर जाकर भी ऐसा किया जा सकता है. इसके बाद, इनमें से कोई विकल्प चुना जा सकता है:
- उस कुंजी का इस्तेमाल करें जिसका इस्तेमाल इस डेवलपर खाते का कोई दूसरा ऐप्लिकेशन करता है.
- अपनी ऐप्लिकेशन साइनिंग कुंजी की कॉपी दें: सबसे पहले, Play Console से Google की पब्लिक एन्क्रिप्शन कुंजी डाउनलोड करें. इसके बाद, Play Encrypt Private Key (PEPK) टूल का इस्तेमाल करें. कंपाइल किए गए टूल या इसके सोर्स कोड को सीधे Console से डाउनलोड किया जा सकता है, ताकि आप इसकी पुष्टि कर सकें या इसे खुद बना सकें. इसकी मदद से, किसी भी रिपॉज़िटरी से अपनी मौजूदा RSA कुंजी (2048-बिट या इससे ज़्यादा) को सुरक्षित तरीके से एन्क्रिप्ट करके अपलोड करें.
मौजूदा ऐप्लिकेशन के लिए
फ़िलहाल, अगर आपके पास अपनी कुंजी मैनेज करने और APK अपलोड करने का विकल्प है, तो ऐप्लिकेशन बंडल और Google Play की सुविधाओं का फ़ायदा पाने के लिए, 'Play ऐप्लिकेशन साइनिंग' पर अपग्रेड किया जा सकता है.
- Play Console में, Google Play की सुरक्षा वाली सुविधाएं > Play Store पर डिस्ट्रिब्यूशन > Play ऐप्लिकेशन साइनिंग पर जाएं पर जाएं.
- अगर आपने अब तक सेवा की शर्तें स्वीकार नहीं की हैं, तो उन्हें स्वीकार करें.
- अपने ओरिजनल कुंजी की कॉपी ट्रांसफ़र करें: PEPK टूल डाउनलोड करें. इसके बाद, किसी भी रिपॉज़िटरी से अपनी मौजूदा ऐप्लिकेशन साइनिंग कुंजी को एन्क्रिप्ट करने और अपलोड करने के लिए, सिलसिलेवार निर्देशों का पालन करें.
एपीआई की सेवा देने वाली कंपनियों के साथ रजिस्टर करना
अगर आपका ऐप्लिकेशन एपीआई (जैसे, Google Maps, OAuth या Facebook Login) का इस्तेमाल करता है, तो ये सेवाएं आपके ऐप्लिकेशन की पुष्टि करने के लिए, ऐप्लिकेशन साइनिंग पासकोड के फ़िंगरप्रिंट का इस्तेमाल करती हैं.
Google, फ़ाइनल APK पर हस्ताक्षर करता है. इसलिए, आपको एपीआई सेवा देने वाली कंपनियों के साथ, Google के पास मौजूद ऐप्लिकेशन साइनिंग पासकोड का फ़िंगरप्रिंट रजिस्टर करना होगा, न कि सिर्फ़ अपना लोकल अपलोड पासकोड.
- Google Play की सुरक्षा के साथ > Play Store पर डिस्ट्रिब्यूशन > Play ऐप्लिकेशन साइनिंग पर जाएं पर जाएं.
- ऐप्लिकेशन साइनिंग कुंजी सेक्शन तक स्क्रोल करें.
- ज़रूरी फ़िंगरप्रिंट (SHA-1 या SHA-256) कॉपी करें.
- इन फ़िंगरप्रिंट को, एपीआई सेवा देने वाली कंपनी के कंसोल में चिपकाएं. उदाहरण के लिए, Google Cloud Console.
अहम जानकारी: अगर Android ऐप्लिकेशन लिंक का इस्तेमाल किया जाता है, तो इन फ़िंगरप्रिंट के साथ assetlinks.json फ़ाइल को अपडेट करें.
अपनी कुंजी मैनेज करना
ऐप्लिकेशन साइनिंग पासकोड को अपग्रेड करना
अगर आपकी ऐप्लिकेशन साइनिंग पासकोड से समझौता किया गया है या आपको क्रिप्टोग्राफ़िक तरीके से ज़्यादा सुरक्षित कुंजी की ज़रूरत है, तो Android N (एपीआई लेवल 24) और इसके बाद के वर्शन पर इंस्टॉल किए जाने वाले सभी ऐप्लिकेशन के लिए, साल में एक बार कुंजी को अपग्रेड करने का अनुरोध किया जा सकता है.
Android के अलग-अलग वर्शन पर, नीतियों के उल्लंघन की जांच करने का तरीका:
- Android T (एपीआई लेवल 33) और उसके बाद के वर्शन: Android प्लैटफ़ॉर्म, अपग्रेड की गई कुंजी को लागू करता है.
- Android N (एपीआई लेवल 24) से लेकर Android S (एपीआई लेवल 32): Android प्लैटफ़ॉर्म, अपग्रेड किए गए पासकोड को लागू नहीं करता. हालांकि, लेगसी साइनिंग पासकोड की पहचान अब भी करता है. हालांकि, Google Play Protect यह पुष्टि करता है कि ऐप्लिकेशन के अपडेट, अपग्रेड किए गए पासकोड से साइन किए गए हैं या नहीं. ऐसा तब तक होता है, जब तक उपयोगकर्ता इसे बंद न कर दें.
अहम जानकारी:
- शेयर किया गया डेटा: प्लैटफ़ॉर्म, Android S (एपीआई लेवल 32) और इससे पहले के वर्शन पर अपग्रेड की गई कुंजी को लागू नहीं करता. इसलिए, अगर डेटा शेयर करने के लिए कई ऐप्लिकेशन में एक ही कुंजी का इस्तेमाल किया जाता है, तो Android के पुराने वर्शन, कस्टम अनुमति शेयर करने जैसी सुविधाओं के लिए सिर्फ़ लेगसी कुंजी की पहचान करेंगे.
How to upgrade:
- Google Play की सुरक्षा वाली सुविधा > Play Store पर डिस्ट्रिब्यूशन > Play ऐप्लिकेशन साइनिंग पर जाएं पर जाएं.
- 'ऐप्लिकेशन साइनिंग पासकोड' सेक्शन में जाकर, पासकोड अपग्रेड करें पर क्लिक करें.
- अपग्रेड करने का तरीका चुनें:
- Google Play को एक नई 'ऐप्लिकेशन साइनिंग की' जनरेट करने दें (इसका सुझाव दिया जाता है)
- उसी ऐप्लिकेशन साइनिंग पासकोड का इस्तेमाल करें जिसे इस डेवलपर खाते के किसी अन्य ऐप्लिकेशन के लिए इस्तेमाल किया जाता है
- ऐप्लिकेशन साइनिंग पासकोड की कॉपी उपलब्ध कराएं (निर्देशों का पालन करके)
- अगर आपको अपना पासकोड देना है, तो apksigner टूल का इस्तेमाल करके "पासकोड बदलने का सबूत" जनरेट करें और उसे अपलोड करें. यह टूल, Android SDK बिल्ड टूल के साथ बंडल किया गया है. (यहां इस्तेमाल किए गए फ़्लैग के बारे में ज़्यादा जानने के लिए, apksigner कमांड-लाइन का दस्तावेज़ देखें):
- apksigner
rotate --out /path/to/new/file --old-signer --ks old-signer-jks --set-rollback true --new-signer --ks new-signer-jks --set-rollback true
- apksigner
- सेव करें पर क्लिक करें. इसके बाद, एपीआई सेवा देने वाली कंपनियों के साथ अपने नए पासकोड के फ़िंगरप्रिंट रजिस्टर करें.
अपलोड पासकोड को रीसेट करने का अनुरोध करें
अगर आपका अपलोड पासकोड खो जाता है या आपको लगता है कि उससे छेड़छाड़ की गई है, तो भी आपके पास अपने ऐप्लिकेशन का ऐक्सेस रहेगा.
- Android Studio में नई अपलोड की बनाएं.
- सर्टिफ़िकेट को PEM फ़ाइल फ़ॉर्मैट में एक्सपोर्ट करें:
keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
(keytool और कीस्टोर के पाथ के बारे में ज़्यादा जानकारी के लिए, Android Studio की ऐप्लिकेशन साइनिंग गाइड देखें). - अपने खाते के मालिक से, Play Console के सहायता फ़ॉर्म के ज़रिए, अपलोड पासकोड को रीसेट करने का अनुरोध करें.
- जब कहा जाए, तब अपनी
upload_certificate.pemफ़ाइल अपलोड करें.
ध्यान दें: अपलोड पासकोड को रीसेट करने से, ऐप्लिकेशन साइनिंग पासकोड या आपके उपयोगकर्ताओं पर कोई असर नहीं पड़ता.
सबसे सही तरीके और डिस्ट्रिब्यूशन के अन्य तरीके
- सुरक्षा: सभी उपयोगकर्ताओं के लिए, दो चरणों में पुष्टि करने की सुविधा को लागू करके, Play Console के ऐक्सेस को सुरक्षित रखें.
- Google Play की सुविधाएं: Play ऐप्लिकेशन साइनिंग में रजिस्टर करने पर, आपको अपने ऐप्लिकेशन बंडल के लिए Play की सुविधाओं का ऐक्सेस मिलता है. अपडेट पाने के लिए, नई रिलीज़ बनाते समय पहले ज़रूरी बदलाव करें. इसके बाद, नया ऐप्लिकेशन बंडल अपलोड करें.
- Google Play के अलावा अन्य प्लैटफ़ॉर्म पर ऐप्लिकेशन डिस्ट्रिब्यूट करना: अगर आपको अन्य ऐप्लिकेशन स्टोर के ज़रिए ऐप्लिकेशन डिस्ट्रिब्यूट करना है और हर जगह एक ही साइनिंग पासकोड का इस्तेमाल करना है, तो आपके पास दो विकल्प हैं. आपके पास दो विकल्प हैं. पहला, Google को ऐप्लिकेशन साइनिंग पासकोड जनरेट करने दें. इसके बाद, साइन किया हुआ यूनिवर्सल APK डाउनलोड करें. इसके लिए, नई रिलीज़ और बंडल पर जाएं. इसके बाद, जांच करें और रिलीज़ करें > नई रिलीज़ और बंडल पर जाएं. अपना ऐप्लिकेशन बंडल चुनें और डाउनलोड टैब पर क्लिक करें. दूसरा, सभी ऐप्लिकेशन स्टोर पर इस्तेमाल करने के लिए एक ऐप्लिकेशन साइनिंग पासकोड जनरेट करें. ऐसा करने के बाद, Play ऐप्लिकेशन साइनिंग की सुविधा को कॉन्फ़िगर करते समय, आपको पासकोड की एक कॉपी Google को ट्रांसफ़र करनी होगी.
- टेस्टिंग: संगठन में काम करने वालों के साथ ऐप्लिकेशन शेयर करने की सुविधा का इस्तेमाल करके, यह टेस्ट करें कि Google Play, उपयोगकर्ताओं को क्या उपलब्ध कराएगा. इसके अलावा, ऐप्लिकेशन बंडल एक्सप्लोरर से डिवाइस के हिसाब से APKs डाउनलोड करें और उन्हें adb install-multiple *
.apkका इस्तेमाल करके, डिवाइस पर इंस्टॉल करें. - APK सिग्नेचर स्कीम v4: Play ऐप्लिकेशन साइनिंग की सुविधा में, ज़रूरी शर्तें पूरी करने वाले ऐप्लिकेशन के लिए v4 साइनिंग प्रक्रिया का इस्तेमाल अपने-आप होता है. ऐसा इसलिए किया जाता है, ताकि Android 11 या उसके बाद के वर्शन वाले डिवाइसों पर ऑप्टिमाइज़ किए गए डिस्ट्रिब्यूशन की सुविधा काम कर सके. आपको कोई कार्रवाई करने की ज़रूरत नहीं है. तकनीकी फ़ायदों के बारे में ज़्यादा जानने के लिए, APK सिग्नेचर स्कीम v4 से जुड़ा दस्तावेज़ पढ़ें.
- सेल्फ़-होस्ट किए गए Google Cloud प्रोजेक्ट: अगर आपको सुरक्षा से जुड़ी कुछ खास शर्तों को पूरा करना है (उदाहरण के लिए, ओईएम कुंजियों का इस्तेमाल करना), तो Play Developer API का इस्तेमाल करके, सेल्फ़-होस्ट किए गए Google Cloud प्रोजेक्ट का इस्तेमाल करके Play ऐप्लिकेशन साइनिंग में रजिस्टर किया जा सकता है. ध्यान दें: यह एक नॉन-स्टैंडर्ड सेटअप है. हम इसका इस्तेमाल करने का सुझाव नहीं देते. सेल्फ़-होस्ट किए गए प्रोजेक्ट का इस्तेमाल करने का मतलब है कि ऐप्लिकेशन साइनिंग से जुड़ी सभी कार्रवाइयों की पूरी ज़िम्मेदारी आपकी होगी. साथ ही, इससे Google Play को आपदा के बाद डेटा वापस पाने जैसी ज़रूरी सुविधाएं लागू करने से रोका जा सकेगा.