Android के लिए कोड साइन
इस लेख में, आप सीखेंगे कि Android (APK) के लिए मैन्युअल रूप से कोड साइन कैसे करें। यदि आपने अपना रैप प्रोजेक्ट बनाते और बनाते समय प्लेटफ़ॉर्म में से एक के रूप में Android का चयन किया है, तो आपको Android के लिए अपने ऐप पर हस्ताक्षर करने की आवश्यकता है.
महत्त्वपूर्ण
यदि आप इसके बजाय Google Play वितरण के लिए AAB ऐप पर हस्ताक्षर करना चाहते हैं, तो अपना ऐप हस्ताक्षरित करें देखें.
अपना PC तैयार करें
आरंभ करने के लिए आपको निम्नलिखित जानकारी की आवश्यकता होगी:
- स्थापित करना Android Studio
- OpenSSL सेट अप करें
- apksigner टूल सेट अप करें
पूर्वावश्यकताएँ
- हैश कुंजी बनाने के लिए अनुप्रयोग का नाम.
- लॉग इन प्रक्रिया के लिए नवीनतम APK फ़ाइल।
कुंजियॉं जनरेट करें
नोट
यदि आपने ऐप पंजीकरण बनाते समय पहले ही कुंजियाँ और हस्ताक्षर हैश जेनरेट कर लिया है, तो APK पैकेज पर हस्ताक्षर करें पर जाएँ।
हम अनुप्रयोग पैकेज पर हस्ताक्षर करने के लिए प्रमाणपत्र बनाने हेतु keytool.exe (इंस्टॉल करने के बाद उपलब्ध, "Drive:\Program Files\ Android Studio\Android\jre\bin\keytool.exe" फ़ोल्डर स्थान से) का उपयोग करेंगे।Android Studio Keytool का उपयोग क्रिप्टोग्राफ़िक कुंजियों, X.509 प्रमाण पत्र श्रृंखलाओं और विश्वसनीय प्रमाण पत्रों के कीस्टोर (डेटाबेस) को प्रबंधित करने के लिए किया जाता है.
एक कुंजी उत्पन्न करने के लिए, एक कमांड प्रॉम्प्ट खोलें और निम्न कमांड चलाएँ:
keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000
पैरामीटर्स:
- genkey - कुंजी उत्पन्न करने के लिए आदेश.
- उपनाम - भविष्य में उत्पन्न की जाने वाली कुंजियों वाले कुंजीस्टोर प्रविष्टि को संदर्भित करने के लिए उपयोग किए जाने वाले उपनाम को इंगित करता है।
- keyalg - कुंजी एल्गोरिथ्म नाम.
- keystore - आपके द्वारा उपयोग किये जा रहे कुंजीस्टोर का नाम.
- keysize - उत्पन्न की जाने वाली प्रत्येक कुंजी का आकार।
- वैधता - दिनों की संख्या में कुंजी की वैधता।
उदाहरण:
यदि कुंजी वॉल्ट तैयार किया जा रहा है, तो PATH_TO_KEYSTORE में .pfx एक्सटेंशन होना चाहिए.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000
यदि मैन्युअल हस्ताक्षर करने की तैयारी कर रहे हैं, तो PATH_TO_KEYSTORE में .jks एक्सटेंशन होना चाहिए.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000
हस्ताक्षर हैश उत्पन्न करें
नोट
यदि आपने ऐप पंजीकरण बनाते समय पहले ही कुंजियाँ और हस्ताक्षर हैश जेनरेट कर लिया है, तो APK पैकेज पर हस्ताक्षर करें पर जाएँ।
कुंजी उत्पन्न करने के बाद, कुंजीस्टोर प्रमाणपत्र निर्यात करने के लिए exportcert कमांड का उपयोग keytool में किया जाता है।
keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64
पैरामीटर्स:
- exportcert - कुंजीस्टोर से उपनाम से संबद्ध प्रमाणपत्र पढ़ता है और उसे cert_file फ़ाइल में संग्रहीत करता है। जब कोई फ़ाइल निर्दिष्ट नहीं की जाती है, तो प्रमाणपत्र stdout पर आउटपुट होता है.
- उपनाम - कुंजियाँ उत्पन्न करते समय प्रयुक्त उपनाम पहले.
- keystore - आपके द्वारा उपयोग किये जा रहे कुंजीस्टोर का नाम.
- openssl - Android के लिए SHA1 कुंजी उत्पन्न करता है।
रीडायरेक्ट URI में जेनरेट किए गए हस्ताक्षर हैश को जोड़ें ऐप को पंजीकृत करते समय।
SHA1 हेक्स को मैन्युअल रूप से Base64-एन्कोडेड सिग्नेचर हैश में बदलें
यदि आपका हस्ताक्षर हैश Azure पोर्टल में सही ढंग से एनकोड नहीं किया गया है या अस्वीकार्य है, तो आपको निम्न त्रुटि दिखाई दे सकती है:
"हस्ताक्षर हैश base64-एन्कोडेड SHA1 होना चाहिए."
जब यह त्रुटि दिखाई देती है, तो इसके बजाय निम्न चरणों का उपयोग करके हस्ताक्षर हैश उत्पन्न करने का प्रयास करें:
- प्रमाणपत्र जानकारी को विस्तृत मोड में सूचीबद्ध करने के लिए
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
चलाएँ। - आउटपुट से SHA1 मान को प्रमाणपत्र फिंगरप्रिंट अनुभाग के अंतर्गत कॉपी करें। सुनिश्चित करें कि आप केवल हेक्साडेसिमल मान की प्रतिलिपि बनाते हैं.
उदाहरण के लिए:EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
- कॉपी किए गए प्रमाण पत्र फ़िंगरप्रिंट हेक्साडेसिमल मान को Base64 एन्कोडेड मान में बदलने के लिए किसी भी उपलब्ध "हेक्साडेसिमल से Base64" कनवर्टर का उपयोग करें.
बेस64 एनकोडेड मान का उदाहरण:8CPPeLaz9etdqQyaQubcqsy2Tw=
- ऐप को पंजीकृत करते समय Azure पोर्टल में हस्ताक्षर हैश के रूप में जनरेट किए गए Base64 एन्कोडेड मान की प्रतिलिपि बनाएँ।
APK पैकेज पर मैन्युअल हस्ताक्षर करें
APK पैकेज पर हस्ताक्षर करने के लिए, हम apksigner टूल का उपयोग करेंगे। यह उपकरण आपको APK पर हस्ताक्षर करने और यह सुनिश्चित करने की अनुमति देता है कि APK पैकेज हस्ताक्षर APK द्वारा समर्थित सभी Android प्लेटफ़ॉर्म पर सफलतापूर्वक सत्यापित किए गए हैं।
नोट
यदि आपने स्वचालित साइन-इन का उपयोग करके ऐप को रैप नहीं किया है तो ये चरण आवश्यक हैं। इस चरण को दोहराने से बचने के लिए, हम स्वचालित साइन-इन का उपयोग करने की सलाह देते हैं.
अपना apksigner खोजें
Android Studio में Android SDK पथ जांचें.
टूल>SDK प्रबंधक>Android SDK स्थान का चयन करें.
यदि iOS का उपयोग कर रहे हैं, तो buildTools Version निर्देशिका से apksigner फ़ाइल की जाँच करें:
SDK निर्देशिका >build-tools>buildToolsVersion>lib पर जाएं, और apksigner.jar फ़ाइल की जाँच करें
apksigner फ़ाइल का उपयोग करें
apksigner का उपयोग करने और पैकेज पर हस्ताक्षर करने के लिए निम्न आदेश चलाएँ:
apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK
पैरामीटर्स:
- ks - कुंजीस्टोर का पथ.
- ks-key-alias - APK फ़ाइल के लिए कुंजी उपनाम पथ.
संकेत मिलने पर, पासवर्ड दर्ज करें.
अधिक जानकारी: Android Studio कमांड लाइन टूल: apksigner
ऐप वितरित करें
आप पैकेज को वितरण सेवा जैसे कि ऐप सेंटर पर होस्ट कर सकते हैं। Microsoft Intune का उपयोग करके वितरण करने के लिए, देखें Microsoft Intune में एक Android लाइन-ऑफ़-बिज़नेस ऐप जोड़ें। किसी ऐप को Intune ऐप सुरक्षा सेवा तक पहुँच प्रदान करने के बारे में जानने के लिए, देखें अपने ऐप को Intune ऐप सुरक्षा सेवा तक पहुँच प्रदान करें.