วิธีสร้างไฟล์ APK ที่ลงชื่อแล้วโดยใช้อินเตอร์เฟสบรรทัดคำสั่ง Cordova


169

checkStatusฉันทำโปรแกรมตัวอย่างชื่อ ตอนนี้ฉันต้องการสร้างไฟล์ APK ที่ลงชื่อแล้ว ดังนั้นฉันสามารถติดตั้งในอุปกรณ์ต่าง ๆ สำหรับการทดสอบของฉัน

สำหรับสิ่งนี้ฉัน Googled และพบเอกสารนี้

ตามเอกสารฉันเปลี่ยนไปที่ไดเรกทอรีโครงการของฉันและเรียกใช้คำสั่งต่อไปนี้:

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

หลังจากที่ผมวิ่งคำสั่งดังกล่าวผมได้ไฟล์ชื่อที่key-name.keystoreprojectRoot/key-name.keystore

projectRoot/platforms/android/key-name.keystoreและจากนั้นผมคัดลอกวางไฟล์ที่เป็น

หลังจากนั้นผมสร้างไฟล์ที่ชื่อและบันทึกไว้ในant.propertiesprojectRoot/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)

ดังนั้นเวลานี้ฉันแก้ไขkey.storeค่าในant.propertiesไฟล์เหมือนในวิธีต่อไปนี้

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

อีกครั้งฉันรันcordova build android --releaseคำสั่ง มันจะพ่นข้อผิดพลาดเดียวกัน

มีใครบอกฉันได้ไหมว่าฉันทำอะไรผิด


3
เริ่มต้นด้วย Cordova 5 กระบวนการเปลี่ยนเล็กน้อย: ilee.co.uk/Sign-Releases-with-Cordova-Android/…
Sombriks

คำตอบ:


305

ขั้นตอนที่ 1:

D:\projects\Phonegap\Example> cordova plugin rm org.apache.cordova.console --save

เพิ่ม--saveเพื่อที่จะเอาปลั๊กอินออกจากconfig.xmlไฟล์

ขั้นตอนที่ 2:

ในการสร้าง build build สำหรับ Android ขั้นแรกเราต้องทำการเปลี่ยนแปลงเล็กน้อยกับAndroidManifest.xmlไฟล์ที่พบใน platforms / android แก้ไขไฟล์และเปลี่ยนบรรทัด:

<application android:debuggable="true" android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name">

และเปลี่ยนandroid:debuggableเป็นfalse:

<application android:debuggable="false" android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name">

ตั้งแต่คอร์โดวา 6.2.0 ลบ Android: แท็ก debuggable ได้อย่างสมบูรณ์ นี่คือคำอธิบายจาก Cordova:

คำอธิบายสำหรับปัญหาประเภท "HardcodedDebugMode": เป็นการดีที่สุดที่จะปล่อยให้ Android: แอตทริบิวต์ที่ debuggable จากรายการ หากคุณทำเช่นนั้นเครื่องมือจะแทรก android โดยอัตโนมัติ: debuggable = true เมื่อสร้าง APK เพื่อดีบักบนอีมูเลเตอร์หรืออุปกรณ์ และเมื่อคุณดำเนินการสร้างการเผยแพร่เช่นการส่งออก APK มันจะตั้งค่าเป็นเท็จโดยอัตโนมัติ

หากในอีกทางหนึ่งคุณระบุค่าเฉพาะในไฟล์ Manifest เครื่องมือจะใช้มันเสมอ สิ่งนี้สามารถนำไปสู่การเผยแพร่แอปของคุณโดยใช้ข้อมูลการดีบักโดยไม่ตั้งใจ

ขั้นตอนที่ 3:

ตอนนี้เราสามารถบอกคอร์โดว่าเพื่อสร้างงานสร้างของเรา:

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

จากนั้นเราสามารถหาไฟล์ APK platforms/android/ant-buildไม่ได้ลงนามใน ในตัวอย่างของเราไฟล์คือplatforms/android/ant-build/Example-release-unsigned.apk

ขั้นตอนที่ 4:

หมายเหตุ: เรามีที่เก็บคีย์ของเราkeystoreNAME-mobileapps.keystoreใน Git Repo นี้หากคุณต้องการสร้างใหม่โปรดดำเนินการตามขั้นตอนต่อไปนี้

การสร้างคีย์:

ไวยากรณ์:

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

EGS:

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

ขั้นตอนที่ 5:

วางที่เก็บคีย์ที่สร้างขึ้น

คอร์โดวารุ่นเก่า

D:\projects\Phonegap\Example\platforms\android\ant-build

Cordova รุ่นใหม่

D:\projects\Phonegap\Example\platforms\android\build\outputs\apk

หากต้องการลงชื่อ APK ที่ไม่ได้ลงชื่อให้ใช้เครื่องมือ jarsigner ซึ่งรวมอยู่ใน JDK ด้วย:

ไวยากรณ์:

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

EGS:

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

หรือ

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

Enter KeyPhrase as 'xxxxxxxx'

นี่เป็นสัญญาณของ apk

ขั้นตอนที่ 6:

ในที่สุดเราต้องเรียกใช้เครื่องมือจัดแนวซิปเพื่อเพิ่มประสิทธิภาพ APK:

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

หรือ

D:\projects\Phonegap\Example\platforms\android\build\outputs\apk> 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


9
โอเคฉันยอมรับความคิดของคุณ แต่ฉันมีที่เก็บคอมไพล์ส่วนตัวและเรามีทีมสำหรับทำงานบนแอพมือถือ ดังนั้นจึงสะดวกสบายสำหรับฉัน
cfprabhu

5
ทำไมการลบ org.apache.cordova.console ถึงมีความสำคัญ?
foreyez

5
@cfprabhu ขั้นตอนที่ 5 กำลังขว้างคำเตือน "ไม่ระบุ -tsa หรือ -tsacert และ jar นี้ไม่ได้ประทับเวลา" แก้ไขโดยการเพิ่ม "-tsa timestamp.digicert.com" ลงในคำสั่ง อาจมีประโยชน์สำหรับผู้ใช้รายอื่น
Thomas Bormans

6
zipalign ภายใต้ OSX มีให้ที่ ~ / Library / Android / sdk / build-tools / 22.0.1 / zipalign
chillwalker

2
@ ThomasBormans -tsa timestamp.digicert.comขว้าง NullPointerException ให้ฉัน -tsa http://timestamp.digicert.comดูเหมือนว่าจะแก้ไข
โทมัส

123

การอัปเดตเป็น @malcubierre สำหรับ Cordova 4 (และใหม่กว่า) -

สร้างไฟล์ชื่อrelease-signing.propertiesและใส่ใน APPFOLDER\platforms\androidโฟลเดอร์

เนื้อหาของไฟล์: แก้ไข after = สำหรับทุกคนยกเว้นบรรทัดที่ 2

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

ดังนั้นคำสั่งนี้ควรสร้างเวอร์ชันที่วางจำหน่าย:

cordova build android --release

2
ขอบคุณ! คุณสามารถเปลี่ยนชื่อ / ที่ตั้งของไฟล์คุณสมบัติของคุณได้ แต่คุณต้องระบุในbuild-extras.gradleไฟล์ เอกสารที่เกี่ยวข้อง Cordova ที่นี่
Dunc

แอพของฉันไม่ได้รับการอัปเดตเป็นเวอร์ชันถัดไปเวอร์ชันแรกที่สร้างใน ant build (Cordova 3) ฉันอัปเกรดคอร์โดวาของฉันเป็น 6.0.0 แล้วตอนนี้รุ่นที่สองถูกสร้างขึ้นในการสร้าง gradle ฉันตามคอร์โดวา doc ล่าสุดเพื่อสร้าง apk ที่ลงนามแล้ว แต่แอปของฉันยังไม่ได้รับการอัปเดต ฉันผ่านข้อมูลทั้งหมดของเว็บ แต่ยังคงมีบางอย่างผิดปกติ โปรดช่วยฉัน @Dunc
NGB

@ Naveen ฉันใช้ Cordova 5.2.0 มีปัญหาหลายอย่างกับรุ่นอื่น ๆ > 5. แนะนำให้คุณลองทำดูถ้าคุณทำได้ จากนั้นหากยังคงมีปัญหาฉันแนะนำให้ถามคำถามใหม่
Dunc

ยังคงมีปัญหา apk รุ่นใหม่ไม่ได้รับการดาวน์โหลดจากแอพที่มีอยู่ @Dunc
NGB

@Dunc ทางออกใด ๆ
NGB

52

ในเอกสารปัจจุบันเราสามารถระบุ build.json ด้วย keystore:

{
     "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

2
ยอดเยี่ยม <3 คำตอบของคุณเกี่ยวกับไฟล์ที่ฉันสามารถควบคุมเวอร์ชันได้!
gustavohenke

3
json นี้ควรอยู่ในไดเรกทอรีใด
Beelphegor

6
Cordova สร้าง android --release
shadi

2
วาง build.json ในโฟลเดอร์รูทโปรเจ็กต์พร้อมกับไฟล์ keystore นี่เป็นวิธีที่ไม่ยุ่งยากในการเซ็นชื่อที่ฉันพบ
Joel Caton

1
ด้วยเหตุผลบางอย่างเส้นทางของไฟล์ที่ฉันต้องเปลี่ยนเป็น "../android.keystore" (เฉือนไปข้างหน้า)
Dilhan Jayathilake

20

ขั้นตอนที่ 1:

ไปที่cordova\platforms\androidant สร้าง fille ที่เรียกว่าant.propertiesไฟล์ที่มีข้อมูลไฟล์ keystore (ที่เก็บคีย์นี้สามารถสร้างได้จาก SDK Android ที่คุณชื่นชอบสตูดิโอ ... ):

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

ขั้นตอนที่ 2:

ไปที่เส้นทาง Cordova และดำเนินการ:

cordova build android --release

หมายเหตุ: คุณจะได้รับแจ้งให้ถามที่เก็บคีย์และรหัสผ่านของคุณ

YourApp-release.apk จะปรากฏขึ้น \cordova\platforms\android\ant-build


1
นี่คือวิธีการแก้ปัญหาการทำงาน: ilee.co.uk/Sign-Releases-with-Cordova-Android
redrom

5
เริ่มต้นด้วย Cordova 5 กระบวนการเปลี่ยนเล็กน้อย: ilee.co.uk/Sign-Releases-with-Cordova-Android/…
Sombriks

ด้วยไฟล์ชื่อ Cordova 5 "release-signing.properties" แทนที่จะเป็น "ant.properties"; ขั้นตอนอื่น ๆ ทั้งหมดตรงตามที่อธิบายโดย @malcubierre
Mario Orlandi

apk รุ่นใหม่ไม่ได้รับการดาวน์โหลดจากแอพที่มีอยู่ใน Cordova 6.0.0 ฉันติดตามเอกสารทั้งหมดแล้วยังไม่สามารถแก้ไขปัญหาของฉันได้คุณสามารถช่วยฉันได้ที่ @MarioOrlandi
NGB

11

ใน Cordova 6.2.0มีวิธีง่าย ๆ ในการสร้าง build build อ้างถึงขั้นตอนอื่น ๆ ได้ที่นี่ขั้นตอน 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

ฉันได้รับข้อผิดพลาดในการThe system cannot find the file specifiedใช้ Cordova 6.2.0
mr5

คุณเปลี่ยนเส้นทางที่เก็บคีย์หรือไม่ ถ้าเป็นเช่นนั้นกรุณาโพสต์คำสั่งที่นี่
KrIsHnA

อ๋อ มันคือcordova build android --release -- --keystore="C:\release.keystore" --storePassword=****** --alias=mr5
mr5

1
หลังจากใส่รหัสผ่านของฉันด้วย"(เครื่องหมายคำพูดคู่) มันเริ่มทำงาน ฉันคิดว่า Cordova มีปัญหาเกี่ยวกับการแยกอักขระพิเศษ
mr5

ถ้าใครใช้อิออนที่คุณสามารถเช็คเอาเอกสารนี้ionicframework.com/docs/cli/cordova/build
เหงียนทราน

7

สำหรับ Mac (osx) ฉันสร้างไฟล์. sh สองไฟล์หนึ่งไฟล์สำหรับสิ่งพิมพ์แรกและอีกไฟล์หนึ่งสำหรับอัปเดต:

#!/bin/sh
echo "Ionic to Signed APK ---- b@agencys.eu // 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 ---- b@agencys.eu // 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

apk ที่เซ็นชื่อของคุณจะอยู่ในโฟลเดอร์แอปของคุณ / แพลตฟอร์ม / android / บิลด์ / เอาท์พุต / apk / เป็น SignedApk.apk ตรวจสอบให้แน่ใจว่าได้ใช้นามแฝงของคีย์และรหัสผ่านที่ถูกต้องซึ่งกำหนดด้วยสคริปต์แรก


2

สร้างไฟล์ APK ของ Cordova ที่ปล่อยออกมาใน cmd

KEY เก็บไฟล์เส้นทาง : เส้นทางของไฟล์ที่เก็บคีย์ (F: /cordova/myApp/xxxxx.jks)

รหัสผ่านร้านค้าที่สำคัญ : xxxxx

KEY STORE ALIAS : xxxxx

รหัสผ่านที่สำคัญของร้านค้า : xxxxx

เส้นทางของไฟล์ zipalign.exe: พา ธ ไฟล์ zipalign.exe (C: \ Users \ xxxx \ AppData \ Local \ Android \ sdk \ build-tools \ 25.0.2 \ zipalign)

ANDROID APK ที่ไม่ได้ลงนาม: android-release-unsigned.apk

ANDROID RELEASE APK NAME : android-release.apk

ทำงานด้านล่างขั้นตอนใน cmd (เรียกใช้ในฐานะผู้ดูแลระบบ)

  1. Cordova build - ปล่อย Android
  2. ไปที่ตำแหน่งไฟล์ android-release-unsigned.apk (โครงการ \ platforms \ android \ build \ outputs \ apk)
  3. jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore < เส้นทางเก็บไฟล์สำคัญของร้านค้า > < ANDROID ชื่อ Android APK ที่ไม่ได้ลงนาม > < นามแฝงหลักของร้านค้า >
  4. < PATH OF zipalign.exe > -v 4 < ANDROID APK NAME ที่ไม่ได้ลงชื่อ > < ANDROID RELEASE APK NAME >

1
##Generated signed apk from commandline
#variables
APP_NAME=THE_APP_NAME
APK_LOCATION=./
APP_HOME=/path/to/THE_APP
APP_KEY=/path/to/Android_key
APP_KEY_ALIAS=the_alias
APP_KEY_PASSWORD=123456789
zipalign=$ANDROID_HOME/build-tools/28.0.3/zipalign

#the logic
cd $APP_HOME
cordova build --release android
cd platforms/android/app/build/outputs/apk/release
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore $APP_KEY ./app-release-unsigned.apk $APP_KEY_ALIAS <<< $APP_KEY_PASSWORD
rm -rf "$APK_LOCATION/$APP_NAME.apk"
$zipalign -v 4 ./app-release-unsigned.apk "$APK_LOCATION/$APP_NAME.apk"
open $APK_LOCATION
#the end

0

ก่อนตรวจสอบรหัสรุ่นและชื่อรุ่นของคุณหากคุณกำลังอัพเดทแอพ และตรวจสอบให้แน่ใจว่าคุณมีที่เก็บคีย์ก่อนหน้า

หากคุณกำลังอัปเดตแอปให้ทำตามขั้นตอน 1,3,4

ขั้นตอนที่ 1:

ไปที่โครงการคอร์โดวาของคุณเพื่อสร้างงานสร้างของเรา:

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

จากนั้นเราสามารถค้นหาไฟล์ APK ที่ไม่ได้ลงชื่อในแพลตฟอร์ม / android / ant-build ในตัวอย่างของเราไฟล์คือ

ถ้าคุณใช้ ant-build

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

หรือ

ถ้าคุณใช้ gradle-build

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 นั้นอยู่ในเส้นทางของคุณ (ตัวอย่างเช่นบนเครื่อง Windows 7 ของฉันมันอยู่ใน C: \ Program Files (x86) \ Java \ 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:

วางที่เก็บคีย์ที่สร้างขึ้นใน D: \ projects \ Phonegap \ ตัวอย่าง \ platforms \ android \ ant-build

หากต้องการลงชื่อ APK ที่ไม่ได้ลงชื่อให้ใช้เครื่องมือ jarsigner ซึ่งรวมอยู่ใน JDK ด้วย:

ไวยากรณ์:

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

หากไม่ได้ทำขั้นตอนเหล่านี้ซ้ำ

(1) คลิกขวาที่ "พีซีนี้"> คลิกขวาที่คุณสมบัติ> การตั้งค่าระบบขั้นสูง> ตัวแปรสภาพแวดล้อม> เลือกเส้นทางแล้วแก้ไข

(2) เพิ่มพา ธ โฟลเดอร์ jdk bin ของคุณไปยังตัวแปรสภาพแวดล้อมควรมีลักษณะดังนี้:

"C: \ Program Files \ Java \ 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'

นี่เป็นสัญญาณของ apk

ขั้นตอนที่ 4:

ในที่สุดเราต้องเรียกใช้เครื่องมือจัดแนวซิปเพื่อเพิ่มประสิทธิภาพ APK:

ถ้า zipalign ไม่รู้จักแล้ว

(1) ข้ามเส้นทาง sdk ของ android ไปหา zipalign โดยปกติจะอยู่ใน android-sdk \ build-tools \ 23.0.3

(2) คัดลอกไฟล์ zipalign ไปวางในโฟลเดอร์ apk release ของคุณในรุ่นปกติ

yourproject แพลตฟอร์ม / / Android / มดสร้าง / ตัวอย่างปล่อย-unsigned.apk

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


0

สำหรับ Windows ฉันได้สร้างbuild.cmdไฟล์:

(แทนที่เส้นทาง keystore และนามแฝง)

สำหรับ Cordova:

@echo off 
set /P spassw="Store Password: " && set /P kpassw="Key Password: " && cordova build android --release -- --keystore=../../local/my.keystore --storePassword=%spassw% --alias=tmpalias --password=%kpassw%

และสำหรับอิออน:

@echo off 
set /P spassw="Store Password: " && set /P kpassw="Key Password: " && ionic build --prod && cordova build android --release -- --keystore=../../local/my.keystore --storePassword=%spassw% --alias=tmpalias --password=%kpassw%

บันทึกไว้ในไดเรกทอรีของ ptoject คุณสามารถดับเบิลคลิกหรือเปิดด้วย cmd

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.