Phonegap 3.x CLI पर Android रिलीज़ APK बनाएँ


108

मैं स्थानीय रूप से Phonegap 3.x CLI का उपयोग करके एक Android ऐप कैसे बना सकता हूं, जो रिलीज के लिए तैयार है? मैं प्रोजेक्ट के प्लेटफार्मों / एंड्रॉइड निर्देशिका के अंदर उत्पन्न बिन फ़ोल्डर की जांच करता हूं, और केवल .debug APKs है।

वैसे, मैं इस कमांड का उपयोग करता हूं: phonegap local build android

जवाबों:


153

यह Phonegap 3.0.x से 3.3.x के लिए है। PhoneGap 3.4.0 और उच्चतर के लिए नीचे देखें

यहाँ जवाब का हिस्सा मिला , Phonegap प्रलेखन में। पूरी प्रक्रिया निम्नलिखित है:

  1. एक कमांड लाइन विंडो खोलें, और / path / to / your / project / platform / android / cordova पर जाएं

  2. दौड़ो build --release। यह एक अहस्ताक्षरित रिलीज़ एपीके / पाथ / टू / योर / प्रोजेक्ट / प्लेटफ़ॉर्म / एंड्रॉइड / बिन फ़ोल्डर बनाता है, जिसे YourAppName-release-unsigned.apk कहा जाता है।

  3. एंड्रॉइड डेवलपर आधिकारिक डॉक्स पर दिए गए निर्देशों का उपयोग करके एपीके पर हस्ताक्षर और संरेखित करें ।

लिंक के लिए @LaurieClark ( http://iphonedevlog.wordpress.com/2013/08/16/use-phonegap-3-0-cli-on-mac-osx-10-to-build-ios-and- एंड्रॉइड-प्रोजेक्ट / ), और ब्लॉगर जो इसे पोस्ट करते हैं, क्योंकि यह मुझे ट्रैक पर रखता है।


9
मुझे अपने AndroidManifest.xml फ़ाइल को मैन्युअल रूप से संशोधित करना पड़ा, जहां मुझे <application android:debuggable="true"...बदलने की आवश्यकता थी<application android:debuggable="false"
इयान जैमीसन

3
आपको इसके बाद की चीज़ को एलाइन करना होगा: zipalign -v 4 your-unaligned.apk your-align.apk
Damian

13
मैं Cordova 3.4.1-0.1.0 चल रहा हूँ और फ़ाइल में बनाई गई है/path/to/your/project/platforms/android/ant-build
AlexStack

1
ऐसा लगता है कि, विशिष्ट होने के नाते, यह 3.4.x से फोनगैप 3.0.x से 3.3.x के लिए है, और आगे यह भिन्न हो सकता है।
गिलर्मो गुटिरेज

आपका बहुत बहुत धन्यवाद गिलर्मो। +1
Quick_Silver

112

PhoneGap 3.4.0 में आप कॉल कर सकते हैं:

cordova build android --release

यदि आपने 'ant.properties' फ़ाइल 'प्लेटफ़ॉर्म / एंड्रॉइड' निर्देशिका में निम्नलिखित की तरह स्थापित की है:

key.store=/Path/to/KeyStore/myapp-release-key.keystore
key.alias=myapp

फिर आपको अपने कीस्टोर पासवर्ड के लिए संकेत दिया जाएगा और आउटपुट फ़ाइल (myapp-release.apk) पहले से ही हस्ताक्षरित और संरेखित और पोस्ट करने के लिए तैयार 'प्लेटफार्मों / एंड्रॉइड / एंटी-बिल्ड' निर्देशिका में समाप्त हो जाती है।


1
कॉर्डोवा की वर्तमान 3.4.0 रिलीज़ में 'एंटी-प्रॉपर्टीज़' फ़ाइल शामिल नहीं है।
SteAp

8
में बनाया ant.propertiesगया platforms/androidऔर बस इन दो गुणों को इसमें गिरा दिया। पूरी तरह से काम करता है, धन्यवाद!
एडम टटल

6
यदि आप कीस्टोर / उर्फ ​​के बारे में अनिश्चित हैं या उन्हें पूरा विवरण कैसे बना सकते हैं, तो डेवलपर
signing.html

6
इस बात पर भी ध्यान दें कि आप इस फ़ाइल में key.store.password और key.alias.password गुण निर्दिष्ट कर सकते हैं, इसलिए आपको रिलीज़ के निर्माण के दौरान हर बार इसे दर्ज नहीं करना पड़ेगा। बेशक सतर्क रहें और इस फाइल को वर्जन सिस्टम में न डालें।
वबजनेर

5
कॉर्डोवा 5.0.0 और इसके बाद के संस्करण के लिए अपनी परियोजना की जड़ पर एक build.json बनाएँ और इसे {"android": {"रिलीज़": {"keystore": "/path/to/your.keystore", "उपनाम से भरें। ":" youalias "}}} के बजाय ant.properties फ़ाइल। FYI करें cordova.apache.org/docs/en/edge/…
artberri

19

कॉर्डोवा में 6.2.0

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

पिछला उत्तर:

कॉर्डोवा 5.0.0 के अनुसार

{
     "android": {
         "release": {
             "keystore": "app-release-key.keystore",
             "alias": "alias_name"
         }
     }
 }

और ./build --release --buildConfig build.jsonनिर्देशिका से चलाते हैंplatforms/android/cordova/

कीस्टोर फ़ाइल स्थान के सापेक्ष है platforms/android/cordova/, इसलिए ऊपर कॉन्फ़िगरेशन .keystoreफ़ाइल में और build.jsonउसी निर्देशिका में हैं।

keytool -genkey -v -keystore app-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000


15

@ स्टीवन-एंडरसन तक आप एंटी.प्रोपरेट्टी के अंदर भी पासवर्ड कॉन्फ़िगर कर सकते हैं, इसलिए प्रक्रिया पूरी तरह से स्वचालित हो सकती है

तो अगर आप मंच \ android \ ant.properties में डाल दिया निम्नलिखित

key.store=../../yourCertificate.jks
key.store.password=notSoSecretPassword
key.alias=userAlias
key.alias.password=notSoSecretPassword

1
विंडोज पर आपको स्लैश से बचना चाहिए ... '... key.store = C: \\ OpenSSL-Win32 \\ certs \\ android_key_store.keystore ...'
bkomac

4

बस बहुत सारे आश्चर्यचकित थे क्योंकि मुझे एक ही मुद्दा मिला था, लेकिन मेरी स्थापना में कमांड "कॉर्डोवा" कभी भी उपलब्ध नहीं था और "फोन गैप बिल्ड एंड्रॉइड - बैरल" ने केवल प्लेटफॉर्म / एंड्रॉइड / एंटी.प्रॉपीटी को अनदेखा किया।

इसलिए अपने प्लेटफ़ॉर्म फ़िल्टर के अंदर मुझे "कॉर्डोवा" नाम का एक फ़ोल्डर मिला और उसके अंदर एक "बिल्ड" बाइनरी था जो कि --release तर्क को स्वीकार करता था, इसने मुझसे कुंजी जंजीरों के लिए पूछा और मैं एक हस्ताक्षरित और उत्पादन के लिए तैयार हो गया। APK।

यह फोन गैप साइट के किसी भी हिस्से में कभी भी प्रलेखित नहीं किया गया था और स्पष्ट रूप से कह रहा हूं कि मुझे थोड़े से नफरत है फोनगैप :( यह चीजों को आसान बनाने वाला था लेकिन सब कुछ बस जटिल था :(


2

Google Play Store पर तैनाती के लिए PhoneGap Android ऐप का निर्माण

ये चरण कॉर्डोवा, फोनगैप या आयोनिक के लिए काम करेंगे। एकमात्र अंतर यह होगा कि जहां भी कॉल cordovaलगाई जाती है, उसे अपने विशेष परिदृश्य के लिए phonegapया उसके साथ बदलें ionic

एक बार जब आप विकास के साथ हो जाते हैं और तैनाती के लिए तैयार हो जाते हैं, तो इन चरणों का पालन करें:

  1. कमांड लाइन विंडो खोलें (मैक पर टर्मिनल और लिनक्स या विंडोज पर कमांड प्रॉम्प्ट)।

  2. सिर / मार्ग / से / आपकी / परियोजना /, जिसे हम प्रोजेक्ट रूट के रूप में संदर्भित करेंगे।

  3. प्रोजेक्ट रूट पर, प्लगइन्स के अपने सेट से "कंसोल" प्लगइन को हटा दें।

    आदेश है:cordova plugin rm cordova-plugin-console

  4. प्रोजेक्ट रूट पर रहते हुए, रिलीज़ वितरण के लिए एपीके बनाने के लिए कॉर्डोवा बिल्ड कमांड का उपयोग करें।

    आदेश है:cordova build --release android

  5. उपरोक्त प्रक्रिया android-release-unsigned.apkफ़ोल्डर में नामक एक फ़ाइल बनाती हैProjectRoot/platforms/android/build/outputs/apk/

  6. Https://developer.android.com/studio/publish/app-signing.html#signing-manually

    पर दिए गए निर्देशों का उपयोग करके एपीके पर साइन इन करें और संरेखित करें । इस चरण के अंत में एपीके जो आपको मिलता है उसे प्ले स्टोर पर अपलोड किया जा सकता है। ।

नोट: एक नौसिखिया या एक शुरुआत के रूप में, अंतिम चरण थोड़ा भ्रमित हो सकता है क्योंकि यह मेरे लिए था। कोई कुछ मुद्दों में भाग सकता है और कुछ प्रश्न हो सकते हैं कि ये आदेश क्या हैं और उन्हें कहां खोजना है।

Q1। क्या हैं jarsigner और Keytool ?
उत्तर: एंड्रॉइड ऐप पर हस्ताक्षर करने के निर्देश आपको विशेष रूप से बताते हैं कि BUT के बारे में jarsigner और keytool क्या हैं, यह आपको यह नहीं बताता है कि यदि आप कमांड लाइन विंडो पर 'कमांड नॉट एरर एरर' चलाते हैं तो उन्हें कहां खोजें।

इस प्रकार, यदि आपको जावा डेवलपमेंट किट (JDK) अपने PATH वैरिएबल में मिला है, तो बस कमांड को चलाना जैसा कि गाइड में काम करेगा। लेकिन, यदि आपके पास इसे अपने पेट में नहीं है, तो आप हमेशा उन्हें बिन से एक्सेस कर सकते हैं अपने जेडीके इंस्टॉलेशन फ़ोल्डर ।

Q2। कहाँ है zipalign ?
उत्तर: zeepign कमांड नहीं मिलने और 'कमांड नहीं मिली त्रुटि' प्राप्त करने की उच्च संभावना है । तुम शायद zipalign googling होगा और जहां इसे खोजने के लिए? Zipalign उपयोगिता Android SDK स्थापना फ़ोल्डर के भीतर मौजूद है। MacOS पर, डिफ़ॉल्ट स्थान पर है, । आप फ़ोल्डर को सामने तो आप जैसे अन्य फ़ोल्डरों की एक गुच्छा मिलेगा , , , , ... ओपन फ़ोल्डर।

user-name/Library/Android/sdk/docsplatform-toolsbuild-toolstoolsadd-ons

build-toolscd build-tools। यहां, आपके द्वारा एंड्रॉइड एसडीके प्रबंधक में उपयोग किए जा रहे बिल्ड टूल-चेन के अनुसार कई फ़ोल्डर होंगे। zipalignइनमें से प्रत्येक फ़ोल्डर में उपलब्ध है। मैं व्यक्तिगत रूप से उस पर नवीनतम संस्करण के साथ फ़ोल्डर के लिए जाता हूं। कोई भी खोलें।

MacOS या लिनक्स पर आपको दस्तावेज़ीकरण का उल्लेख करने के ./zipalignबजाय बस टाइप करने के लिए उपयोग करना पड़ सकता है zipalign। विंडोज पर, zipalignकाफी अच्छा है।


1

मैं यह zipign के रूप में एक ही dir में हस्ताक्षर किए एप्लिकेशन को कॉपी करके काम करने के लिए मिला। ऐसा लगता है कि aapt.exe पथ दिए जाने पर भी स्रोत फ़ाइल नहीं ढूँढ सका। यानी इसने zipalign -f -v 4 C पर काम नहीं किया: ... \ CordovaApp-release-unsigned.apk C: ... \ गंतव्य.apk यह aapt.exeCordovaApp-रिलीज़-अहस्ताक्षरित .apk पर पहुँच गया, फ़्रीज़ करें और वापसी पर टकराने पर। 'aapt.exeCordovaApp-release-unsigned.apk' को आंतरिक या बाहरी कमांड, ऑपरेशनल प्रोग्राम या बैच फ़ाइल के रूप में मान्यता नहीं दी जाती है। और इसने zipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apk किया


पारितोषिक के लिए धन्यवाद। आप पथ पर्यावरण चर में zipalign के फ़ोल्डर में पथ को भी शामिल कर सकते हैं।
गुइलेर्मो गुतिरेज

0

मुझे पता है कि यह सवाल विशेष रूप से Phonegap 3.X के बारे में पूछता है, लेकिन संदर्भ के लिए 4.0.0 से ऊपर किसी भी Phonegap संस्करण डिफ़ॉल्ट रूप से बनाने के लिए चींटी के बजाय ग्रेड का उपयोग करता है । ग्रेड के बजाय चींटी का उपयोग करने के लिए आप इसे अपने config.xml में जोड़ सकते हैं:

<preference name="android-build-tool" value="ant" />

ग्रेड का उपयोग करते समय कीस्टॉर पर हस्ताक्षर करने वाली जानकारी अब एक नए स्थान पर जाने की आवश्यकता है ( जैसा कि इस पोस्ट में उल्लिखित है )। 'नामक नई फ़ाइल बनाएं release-signing.properties के रूप में "build.gradle" फ़ाइल और निम्न सामग्री के अंदर डाल एक ही फ़ोल्डर में':

storeFile=..\\..\\some-keystore.keystore
storeType=jks
keyAlias=some-key
// if you don't want to enter the password at every build, you can store it with this
keyPassword=your-key-password
storePassword=your-store-password

-7

आप इस कमांड को आज़मा सकते हैं, इसे ऐप को बनाना और चलाना चाहिए (ताकि .apk बनाया जाए):

phonegap local run android


3
यह अभी भी केवल डीबग APK बनाता है।
गुइलेर्मो गुतिरेज़

2
नहीं, यह सिर्फ इतना है कि यह डीबग किए गए APK को बनाता है, APK जारी नहीं करता है।
गुइलेर्मो गुतिएरेज़

1
यहाँ समाधान मिला (3/4 रास्ता नीचे: "Google Play अपलोड के लिए अंतिम रूप दें"): iphonedevlog.wordpress.com/2013/08/16/…
लॉरी क्लार्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.