android - कॉर्डोवा कमांड लाइन इंटरफेस का उपयोग कर एक हस्ताक्षरित एपीके फ़ाइल कैसे बनाएं?




cordova ant (7)

कॉर्डोवा 4 के लिए @malcubierre के लिए एक अद्यतन (और बाद में) -

release-signing.properties APPFOLDER\platforms\android नामक एक फ़ाइल बनाएं और APPFOLDER\platforms\android फ़ोल्डर में डाल APPFOLDER\platforms\android

फ़ाइल की सामग्री: दूसरी पंक्ति को छोड़कर सभी के बाद संपादित करें

storeFile=C:/yourlocation/app.keystore
storeType=jks
keyAlias=aliasname
keyPassword=aliaspass
storePassword=password

फिर इस कमांड को रिलीज़ संस्करण बनाना चाहिए:

cordova build android --release

मैंने checkStatus नामक एक नमूना आवेदन किया। अब मैं एक हस्ताक्षरित एपीके फ़ाइल बनाना चाहता हूं। तो मैं इसे अपने परीक्षण के लिए विभिन्न उपकरणों में स्थापित कर सकता हूं।

इसके लिए, मैंने गुगल किया और यह documentation पाया।

दस्तावेज़ के अनुसार, मैंने अपनी प्रोजेक्ट निर्देशिका में स्विच किया और निम्न आदेश चलाया:

keytool -genkey -v -keystore key-name.keystore -alias alias-name -keyalg RSA -keysize 2048 -validity 10000

उपर्युक्त आदेश चलाने के बाद, मुझे key-name.keystore projectRoot/key-name.keystore key-name.keystore पर key-name.keystore नाम की एक फ़ाइल projectRoot/key-name.keystore

और फिर मैंने उस फ़ाइल को projectRoot/platforms/android/key-name.keystore

उसके बाद, मैंने ant.properties नाम की एक फ़ाइल बनाई और इसे projectRoot/platforms/android में सहेजा।

मैंने फाइल के अंदर निम्नलिखित कोड लिखा है:

key.store=projectRoot/key-name.keystore
key.alias=myApp

उसके बाद, मैंने रिलीज करने के लिए निम्न आदेश चलाया

Cordova builds android --release

यह निम्नलिखित त्रुटि फेंक रहा है:

 /home/projectRoot/platforms/android/cordova/node_modules/q/q.js:126
                throw e;
                      ^
Error code 1 for command: ant with args: release,-f,/home/projectRoot/platforms/android/build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen

 Error: /home/projectRoot/platforms/android/cordova/build: Command failed with exit code 8
at ChildProcess.whenDone (/usr/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:135:23)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:753:16)
at Process.ChildProcess._handle.onexit (child_process.js:820:5)

इसलिए इस बार, मैंने ant.properties फ़ाइल में ant.properties मान को निम्न तरीके से संशोधित किया।

 key.store=/home/projectRoot/platforms/android/key-name.keystore

फिर, मैं cordova build android --release कमांड भाग गया। यह एक ही त्रुटि फेंकता है।

क्या कोई मुझे बता सकता है कि मैंने क्या गलत किया है?


मैक (ओएसएक्स) पर, मैंने दो .sh फ़ाइलों को उत्पन्न किया, पहला प्रकाशन के लिए एक और अद्यतन करने के लिए दूसरा:

#!/bin/sh
echo "Ionic to Signed APK ---- [email protected] // Benjamin Rathelot\n"
printf "Project dir : "
read DIR
printf "Project key alias : "
read ALIAS
cd $DIR/
cordova build --release android
cd platforms/android/build/outputs/apk/
keytool -genkey -v -keystore my-release-key.keystore -alias $ALIAS -keyalg RSA -keysize 2048 -validity 10000
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore android-release-unsigned.apk $ALIAS
zipalign -v 4 android-release-unsigned.apk signedApk.apk

और अपने ऐप को अपडेट करने के लिए:

#!/bin/sh
echo "Ionic to Signed APK ---- [email protected] // Benjamin Rathelot\n"
printf "Project dir : "
read DIR
printf "Project key alias : "
read ALIAS
cd $DIR/
cordova build --release android
cd platforms/android/build/outputs/apk/
rm signedApk.apk
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore android-release-unsigned.apk $ALIAS
zipalign -v 4 android-release-unsigned.apk signedApk.apk

मान लीजिए कि आप अपने घर फ़ोल्डर में हैं या आपके ऐप फ़ोल्डरों को टॉप करने वाले फ़ोल्डर में हैं। इस स्क्रिप्ट का उपयोग करने के लिए सही ढंग से chmod सेट करना सुनिश्चित करें। फिर :

./ionicToApk.sh # or whatever depending of the name of your file, in CLI

आपका हस्ताक्षरित एपीके आपके ऐप फ़ोल्डर / प्लेटफॉर्म / एंड्रॉइड / बिल्ड / आउटपुट / एपीके / साइनएडएपीके.एपीके के रूप में होगा, पहले स्क्रिप्ट के साथ परिभाषित सही कुंजी उपनाम और पासवर्ड का उपयोग करना सुनिश्चित करें


वर्तमान documentation हम keystore के साथ build.json निर्दिष्ट कर सकते हैं:

{
     "android": {
         "debug": {
             "keystore": "..\android.keystore",
             "storePassword": "android",
             "alias": "mykey1",
             "password" : "password",
             "keystoreType": ""
         },
         "release": {
             "keystore": "..\android.keystore",
             "storePassword": "",
             "alias": "mykey2",
             "password" : "password",
             "keystoreType": ""
         }
     }
 }

और फिर, कमांडो को --buildConfig तर्क के साथ निष्पादित करें, इस तरह:

cordova run android --buildConfig

कॉर्डोवा 6.2.0 में , रिलीज बिल्ड बनाने का इसका एक आसान तरीका है। यहां चरण 1, 2 और 4 के अन्य चरणों का संदर्भ लें

cd cordova/ #change to root cordova folder
platforms/android/cordova/clean #clean if you want
cordova build android --release -- --keystore="/path/to/keystore" --storePassword=password --alias=alias_name #password will be prompted if you have any

यदि आप अपना ऐप अपडेट कर रहे हैं तो सबसे पहले अपना संस्करण कोड और संस्करण नाम देखें। और सुनिश्चित करें कि आपके पास पिछले कीस्टोर है।

यदि आप ऐप अपडेट कर रहे हैं तो चरण 1,3,4 का पालन करें।

चरण 1:

हमारे रिलीज बिल्ड उत्पन्न करने के लिए गोरो कॉर्डोवा प्रोजेक्ट:

D:\projects\Phonegap\Example> cordova build --release android

फिर, हम प्लेटफार्म / एंड्रॉइड / चींटी-बिल्ड में हमारी हस्ताक्षरित एपीके फ़ाइल पा सकते हैं। हमारे उदाहरण में, फाइल थी

अगर आप चींटी निर्माण का इस्तेमाल करते हैं

yourproject/platforms/android/ant-build/Example-release-unsigned.apk

या

यदि आप ग्रेड-बिल्ड का इस्तेमाल करते हैं

yourProject/platforms/android/build/outputs/apk/Example-release-unsigned.apk

चरण 2:

कुंजी जनरेशन:

वाक्य - विन्यास:

keytool -genkey -v -keystore <keystoreName>.keystore -alias <Keystore AliasName> -keyalg <Key algorithm> -keysize <Key size> -validity <Key Validity in Days>

अगर keytool कमांड पहचान नहीं है तो यह कदम करें

जांचें कि आपके पथ पर keytool निष्पादन योग्य निर्देशिका है। (उदाहरण के लिए, मेरी विंडोज 7 मशीन पर, यह सी: \ प्रोग्राम फ़ाइलें (x86) \ जावा \ jre6 \ bin में है।)

उदाहरण:

keytool -genkey -v -keystore NAME-mobileapps.keystore -alias NAMEmobileapps -keyalg RSA -keysize 2048 -validity 10000


keystore password? : xxxxxxx
What is your first and last name? :  xxxxxx
What is the name of your organizational unit? :  xxxxxxxx
What is the name of your organization? :  xxxxxxxxx
What is the name of your City or Locality? :  xxxxxxx
What is the name of your State or Province? :  xxxxx
What is the two-letter country code for this unit? :  xxx

फिर कुंजी स्टोर NAME_ mobileapps.keystore के रूप में नाम से उत्पन्न किया गया है

चरण 3:

डी: \ परियोजनाओं \ Phonegap \ उदाहरण \ प्लेटफॉर्म \ android \ ant-build में जेनरेट की गई कीस्टोर रखें

हस्ताक्षरित एपीके पर हस्ताक्षर करने के लिए, jarsigner उपकरण चलाएं जो जेडीके में भी शामिल है:

वाक्य - विन्यास:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <keystorename <Unsigned APK file> <Keystore Alias name>

यदि यह इन चरणों को पुन: व्यवस्थित नहीं करता है

(1) "यह पीसी" पर राइट क्लिक करें> राइट-क्लिक करें गुण> उन्नत सिस्टम सेटिंग्स> पर्यावरण चर> पैथ का चयन करें फिर संपादित करें।

(2) पर्यावरण चर के लिए अपना जेडीके बिन फ़ोल्डर पथ जोड़ें, इसे इस तरह दिखना चाहिए:

"सी: \ प्रोग्राम फ़ाइलें \ जावा \ jdk1.8.0_40 \ bin"।

उदाहरण:

D:\projects\Phonegap\Example\platforms\android\ant-build> jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore NAME-mobileapps.keystore Example-release-unsigned.apk xxxxxmobileapps

Enter KeyPhrase as 'xxxxxxxx'

यह जगह में एपीके संकेत करता है।

चरण 4:

अंत में, हमें एपीके को अनुकूलित करने के लिए ज़िप संरेखण उपकरण चलाने की आवश्यकता है:

यदि zipalign तब पहचान नहीं है

(1) आपके एंड्रॉइड एसडीके पथ को मिला और ज़िप्पाइनिन ढूंढें आमतौर पर यह एंड्रॉइड-एसडीके \ बिल्ड-टूल्स \ 23.0.3 में होता है

(2) आमतौर पर नीचे पथ में अपने उत्पन्न रिलीज एपीके फ़ोल्डर में zipalign फ़ाइल पेस्ट कॉपी करें

/ उदाहरण रिलीज-unsigned.apk yourproject / प्लेटफार्मों / एंड्रॉयड / चींटी-निर्माण

D:\projects\Phonegap\Example\platforms\android\ant-build> zipalign -v 4 Example-release-unsigned.apk Example.apk 

या

D:\projects\Phonegap\Example\platforms\android\ant-build> C:\Phonegap\adt-bundle-windows-x86_64-20140624\sdk\build-tools\android-4.4W\zipalign -v 4 Example-release-unsigned.apk Example.apk

अब हमारे पास अंतिम रिलीज बाइनरी है जिसे example.apk कहा जाता है और हम इसे Google Play Store पर रिलीज़ कर सकते हैं।


चरण 1:

cordova\platforms\android जाएं cordova\platforms\android चींटी keystore फ़ाइल जानकारी के साथ ant.properties फ़ाइल नामक एक फ़ाइल ant.properties (यह कीस्टोर आपके पसंदीदा एंड्रॉइड एसडीके, स्टूडियो से उत्पन्न किया जा सकता है ...):

key.store=C:\\yourpath\\Yourkeystore.keystore
key.alias=youralias

चरण 2:

कॉर्डोवा पथ पर जाएं और निष्पादित करें:

cordova build android --release

नोट: आपको अपने कीस्टोर और कुंजी पासवर्ड से पूछने के लिए कहा जाएगा

एक YourApp-release.apk \cordova\platforms\android\ant-build में दिखाई देगा


मेरे पास एक खत्म () था जिसे मेरे अलर्टडिअलॉग कहा जाने से पहले जगह कहा गया था जिसके कारण गतिविधि को अलर्टडिअलॉग कहा जाने से पहले खत्म कर दिया गया था। मैंने फिनिश () को हटा दिया और उपयोगकर्ता को अलर्टडिअलॉग का उपयोग करके अपना इनपुट पूरा करने के बाद रखा और विंडो रिसाव तय किया गया।







android cordova ant