Signing Android Application – इससे पहले कि किसी Android Application को Install किया जा सके, उसका एक Certificate से Digitally Signed होना जरूरी होता है क्योंकि Android इस Certificate को Install होने वाले Android App के Author को Identify करने के लिए Use करता है तथा इस Certificate को किसी Certificate Authority द्वारा Signed करना जरूरी नहीं होता बल्कि Android Apps सामान्यत: Self-Signed Certificates होते हैं और ये Self-Signed Certificate एक Private Key से Associated होता है, जो कि उस App के Developer द्वारा निर्धारित किया जाता है। इसलिए यदि किसी Android App का Author भी यदि अपनी ही Private Key को भूल जाए, तो वह स्वयं भी अपने Android App को Update या Edit नहीं कर सकता।
अत: एक Android App Developer के रूप में आप अपने Android App के साथ जिस Private Key को Certificate के रूप में Sign करते हैं, उसे हमेंशा सम्भाल कर रखना जरूरी होता है अन्यथा इस Key के खो जाने की स्थिति में आप स्वयं अपने ही Android App पर से अपना अधिकार खो देंगे।
हम हमारे Android App को Debug व Release दोनों Modes में Sign कर सकते हैं। जब हम हमारे Application को Debug Mode में Build करते हैं, तब Android SDK Tools स्वयं ही हमारे Application के लिए एक Debug Key Generate करके हमारे Application को Sign कर देता है। इस Debug Key के साथ एक Known Password Associated रहता है, इसलिए इस प्रकार के Android App को Install करते समय हमें Password Type करना जरूरी नहीं होता।
Debug Mode के लिए Generated Private Key पर आधारित Installer को हम Testing के लिए किसी Device या Emulator पर Install कर सकते हैं लेकिन इस प्रकार के Android App को हम इस तरह से Distribute नहीं कर सकते, जिसे अन्य Users अपने Device में Install कर सकें।
Default रूप से Debug Configuration एक Debug Keystore Use करता है, जिसमें एक Known Password व एक Default Key होता है। ये Debug Keystore हमारे Local Computer System पर “$HOME/.android/” (Linux) or “Drive:\<user>\.android\” (Windows) Path पर debug.keystore नाम की File के रूप में होता है और यदि ये File पहले से Exist न हो, तब भी App Building के दौरान ये File Automatically Create हो जाता है।
जब हम अपने Android App को Debug Mode में Build करते हैं, तब Debug Mode Type इस Keystore File को पहले से ही Automatically Use करने के लिए Configured रहता है, इसलिए Debug Mode में अपने App को Build करते समय हमें कुछ भी Extra करने की जरूरत नहीं होता बल्कि Command Prompt पर केवल “ant debug” Command को Execute कर देना ही पर्याप्त होता है।
लेकिन जब हम हमारे Android Application को Distribute करने हेतु Release Mode में Build करते हैं, तब हमें हमारे Application को स्वयं की Private Key Certificate द्वारा Sign करना जरूरी होता है, जिसके लिए हमें निम्न Steps Follow करने होते हैं:
सबसे पहले हमें एक Keystore Create करना होता है, जो कि एक Binary File होती है, जिसमें Private Keys का एक Set होता है। हमें हमारी इस Keystore File को काफी सुरिक्षत रखना जरूरी होता है, अन्यथा हम हमारे ही Application को Edit/Update नहीं कर सकते। इस File को Create करने के लिए हमें हमारे Command Prompt पर निम्नानुसार keytool Utility को Use करना होता है, जो कि हमें हमारे Android SDK Tools के साथ प्राप्त होता है:
ये Command Run होते ही उपरोक्त चित्रानुसार एक Password Enter करने के लिए Prompt करता है, जो कि हमारे Newly Create होने वाले Keystore के साथ Associate हो जाता है। Password Specify करने के बाद ये Tool हमसे निम्नानुसार कुछ और सवाल पूछता है, हमें जिनका क्रम से उपयुक्त जवाब देना जरूरी होता है।
और यदि सबकुछ सही तरीके से Perform होता है तो अन्त में Current Directory में ही my-release-key.keystore नाम की एक Keystore File Create हो जाती है, जो कि हमारी Keystore File होती है और हमें इस File को काफी सम्भाल कर रखना जरूरी होता है, जिसकी जरूरत हमें हमारे Application को फिर से Update/Edit करते समय होती है।
इस Command में Specified विभिन्न Parameters काफी Self-Descriptive हैं, फिर भी:
- -genkey Parameter एक नया Keystore Generate करने का Instruction देता है।
- -v Parameter हमें हमारे Application के Version Number को Specify करने की सुविधा देता है।
- -keystore Parameter हमें हमारे Keystore के नाम को Specify करने की सुविधा देता है।
- -alias Parameter हमें हमारे Keystore के नाम का एक और नाम (Alias) Specify करने की सुविधा देता है। इस नाम का प्रयोग हमें बाद में करना होता है जब हम हमारे Android App को Sign करते हैं।
- -keyalg Parameter के रूप में हम हमारे Create होने वाले Keystore की Encoding Algorithm को Specify करते हैं जो कि Current Example में RSA है।
- -keysize Parameter के रूप में हम हमारे Create होने वाले Keystore की Size को Specify करते हैं जो कि Current Example में 2048 है।
- -validity Parameter के रूप में हम हमारे Create होने वाले Keystore की Life को Specify करते हैं जो कि Current Example में 10000 है। यानी हमारी Current Key कुल 10000 दिनों के लिए Valid रहेगी, जिसे फिर से Reuse करके हम हमारे Current Android App को Edit, Modify व फिर से Update कर सकते हैं।
Keystore Create करने के बाद हमें एक Private Key Create करना होता है। ये Private Key हमारे App को एक Person या Company के रूप में Identify करने हेतु अपना Role Play करता है।
Private Key Create करने हेतु हमें हमारे Android App को Release Mode में Compile करना होता है, जिससे एक Unsigned APK Create होता है। इसी Unsigned APK को आगे आने वाले Step में Signed किया जाता है।
अन्त में अपने Private Key को jarsigner Tool का प्रयोग करते हुए Sign करना होता है और Signing के लिए Use किया जाने वाला Statement निम्नानुसार होता है:
keytool -genkey -v
-keystore my-release-key.keystore
-alias alias_name
-keyalg RSA
-keysize 2048
-validity 10000
हालांकि ये सभी काम हमें उस स्थिति में Manually करने पडते हैं, जब हम हमारा Android Project Manually Create, Compile, Build, Test, Debug व Run कर रहे होते हैं और इसीलिए Manual Approach में गलतियाँ होने की सम्भावना भी काफी ज्यादा होती है।
लेकिन Android Development की Internal Working को बेहतर तरीके से समझने के लिए कम से कम एक Android Project को Manual Approach का प्रयोग करते हुए ही Develop करना चाहिए, ताकि जब Android Studio, Intel NDK, NVIDIA, Rad Studio जैसे IDEs का प्रयोग करते हुए Android Development किया जाए, तो इस बात का पता रहे कि एक Android Application Internally किस प्रकार से बन रहा है और ये IDEs किस तरह से इन Android Applications को आसानी से बनाने के लिए विभिन्न प्रकार के जरूरी Configurations व Settings हमारी जानकारी के बिना Internally कर रहे हैं।
क्योंकि जब हम किसी IDE का प्रयोग करते हुए Android Development कर रहे होते हैं, तब भी ये सारे काम होते हैं, लेकिन उस समय एक Android Development से सम्बंधित इन विभिन्न प्रकार के Configurations को IDE स्वयं ही अपने स्तर पर Perform कर देता है, जिसकी वजह से हम हमारा पूरा ध्यान अपने Android Application के Features Develop करने पर लगा सकते हैं क्येांकि IDEs का प्रयोग करके हम अपने Application को Compile, Run, Test, Debug, व Deploy करने से सम्बंधित विभिन्न प्रकार के Common Tasks को बार-बार Manually Perform करने से बच जाते हैं।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Android in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।
Android in Hindi | Page: 628 | Format: PDF