ฉันจะสร้างแอป Android ในเครื่องโดยใช้ Phonegap 3.x CLI พร้อมเผยแพร่ได้อย่างไร ฉันตรวจสอบโฟลเดอร์ bin ที่สร้างขึ้นภายในไดเร็กทอรี platform / android ของโปรเจ็กต์และมีเฉพาะ. debug APK เท่านั้น
อย่างไรก็ตามฉันใช้คำสั่งนี้: phonegap local build android
ฉันจะสร้างแอป Android ในเครื่องโดยใช้ Phonegap 3.x CLI พร้อมเผยแพร่ได้อย่างไร ฉันตรวจสอบโฟลเดอร์ bin ที่สร้างขึ้นภายในไดเร็กทอรี platform / android ของโปรเจ็กต์และมีเฉพาะ. debug APK เท่านั้น
อย่างไรก็ตามฉันใช้คำสั่งนี้: phonegap local build android
คำตอบ:
สำหรับ Phonegap 3.0.x ถึง 3.3.x สำหรับ PhoneGap 3.4.0 และสูงกว่าเห็นด้านล่าง
พบส่วนหนึ่งของคำตอบที่นี่ในเอกสาร Phonegap กระบวนการทั้งหมดมีดังต่อไปนี้:
เปิดหน้าต่างบรรทัดคำสั่งและไป / เส้นทาง / เพื่อ / โครงการ / คุณ / / แพลตฟอร์ม
build --releaseวิ่ง สิ่งนี้จะสร้าง APK รุ่นที่ไม่ได้ลงชื่อที่โฟลเดอร์ / path / to / your / project / platforms / android / binเรียกว่า YourAppName-release-unsigned.apk
เข้าสู่ระบบและจัดเอพีเคโดยใช้คำแนะนำที่นักพัฒนาหุ่นยนต์เอกสารอย่างเป็นทางการ
ขอบคุณ @LaurieClark สำหรับลิงค์ ( http://iphonedevlog.wordpress.com/2013/08/16/using-phonegap-3-0-cli-on-mac-osx-10-to-build-ios-and- android-projects / ) และบล็อกเกอร์ที่โพสต์เพราะมันทำให้ฉันติดตาม
/path/to/your/project/platforms/android/ant-build
ใน PhoneGap 3.4.0 คุณสามารถโทร:
cordova build android --release
หากคุณตั้งค่าไฟล์ 'ant.properties' ในไดเร็กทอรี 'platform / android' ดังต่อไปนี้:
key.store=/Path/to/KeyStore/myapp-release-key.keystore
key.alias=myapp
จากนั้นคุณจะได้รับแจ้งให้ใส่รหัสผ่านที่เก็บคีย์ของคุณและไฟล์ผลลัพธ์ (myapp-release.apk) จะลงเอยในไดเร็กทอรี 'platform / android / ant-build' ที่ลงชื่อและจัดตำแหน่งไว้แล้วและพร้อมที่จะปรับใช้
ant.propertiesในplatforms/androidและเพียงแค่ปรับตัวลดลงทั้งสองคุณสมบัติเป็นมัน ทำงานได้อย่างสมบูรณ์ขอบคุณ!
ใน Cordova 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
คำตอบก่อนหน้า:
อ้างอิงจาก Cordova 5.0.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
ติดตามถึง @ steven-anderson คุณยังสามารถกำหนดค่ารหัสผ่านภายใน ant.properties ดังนั้นกระบวนการจึงเป็นไปโดยอัตโนมัติ
ดังนั้นหากคุณใส่ platform \ android \ ant.properties ดังต่อไปนี้
key.store=../../yourCertificate.jks
key.store.password=notSoSecretPassword
key.alias=userAlias
key.alias.password=notSoSecretPassword
เพิ่งสงสัยมากเพราะฉันมีปัญหาเดียวกัน แต่ในการติดตั้งคำสั่ง "cordova" ไม่สามารถใช้งานได้และ "phone gap build android --release" ก็ไม่สนใจแพลตฟอร์ม / android / ant.properties
ดังนั้นเมื่อมองเข้าไปในตัวกรองแพลตฟอร์มของฉันฉันพบโฟลเดอร์ชื่อ "Cordova" และข้างในนั้นมีไบนารี "build" ที่ยอมรับอาร์กิวเมนต์ --release มันถามฉันถึงพวงกุญแจและฉันก็ลงเอยด้วยการเซ็นชื่อและพร้อมสำหรับการผลิต APK
สิ่งนี้ไม่เคยถูกบันทึกไว้ในส่วนใด ๆ ของไซต์ช่องว่างของโทรศัพท์และพูดตรงไปตรงมาตอนนี้ฉันเกลียด phonegap :( มันควรจะทำให้สิ่งต่างๆง่ายขึ้น แต่ทุกอย่างก็ซับซ้อน :(
การสร้างแอพ PhoneGap Android สำหรับการปรับใช้กับ Google Play Store
ขั้นตอนเหล่านี้ใช้ได้กับ Cordova, PhoneGap หรือ Ionic ความแตกต่างเพียงอย่างเดียวคือไม่ว่าจะโทรไปที่cordovaใดแทนที่ด้วยphonegapหรือionicสำหรับสถานการณ์เฉพาะของคุณ
เมื่อคุณพัฒนาเสร็จแล้วและพร้อมที่จะปรับใช้ให้ทำตามขั้นตอนเหล่านี้:
เปิดหน้าต่างบรรทัดคำสั่ง (Terminal บน macOS และ Linux หรือ Command Prompt บน Windows)
ตรงไปที่ / path / to / your / project / ซึ่งเราจะเรียกว่า Project Root
ขณะอยู่ที่รูทโปรเจ็กต์ให้ลบปลั๊กอิน "คอนโซล" ออกจากชุดปลั๊กอินของคุณ
คำสั่งคือ:cordova plugin rm cordova-plugin-console
ในขณะที่ยังอยู่ที่รูทโปรเจ็กต์ให้ใช้คำสั่ง Cordova build เพื่อสร้าง APK สำหรับการแจกจ่ายรุ่น
คำสั่งคือ:cordova build --release android
กระบวนการข้างต้นสร้างไฟล์ที่เรียกว่าandroid-release-unsigned.apkในโฟลเดอร์ProjectRoot/platforms/android/build/outputs/apk/
ลงชื่อและจัดแนว APK โดยใช้คำแนะนำที่https://developer.android.com/studio/publish/app-signing.html#signing- ด้วยตนเอง
ในตอนท้ายของขั้นตอนนี้ APK ที่คุณได้รับสามารถอัปโหลดไปยัง Play Store ได้ .
หมายเหตุ:ในฐานะมือใหม่หรือมือใหม่ขั้นตอนสุดท้ายอาจจะสับสนเล็กน้อยสำหรับฉัน อาจพบปัญหาเล็กน้อยและอาจมีคำถามว่าคำสั่งเหล่านี้คืออะไรและจะหาได้ที่ไหน
คำถามที่ 1 อะไรคือJarsignerและkeytool ?
คำตอบ:คำแนะนำในการลงนามแอป Android จะบอกคุณโดยเฉพาะว่าjarsignerและkeytoolเป็นข้อมูลเกี่ยวกับอะไร แต่ไม่ได้บอกคุณว่าจะหาได้จากที่ใดหากคุณพบข้อผิดพลาด 'command not found' ในหน้าต่างบรรทัดคำสั่ง
ดังนั้นหากคุณได้เพิ่ม Java Development Kit (JDK) ลงในตัวแปรPATHของคุณเพียงแค่เรียกใช้คำสั่งตามที่อยู่ในคำแนะนำก็จะใช้งานได้ แต่ถ้าคุณไม่มีใน PATH คุณสามารถเข้าถึงได้จากถังขยะเสมอโฟลเดอร์ของการติดตั้ง JDK ของคุณ
คำถามที่ 2 อยู่ที่ไหนzipalign ?
ตอบ:มีความเป็นไปได้สูงที่จะไม่พบคำสั่งzipalignและได้รับคำสั่ง 'command not found error' คุณอาจจะ googling zipalignและจะหาได้ที่ไหน? zipalignยูทิลิตี้ที่มีอยู่ภายในโฟลเดอร์การติดตั้ง Android SDK บน MacOS ตั้งเริ่มต้นที่, หากคุณตรงไปที่โฟลเดอร์ที่คุณจะพบพวงของโฟลเดอร์อื่น ๆ ชอบ, , , , ...
เปิดโฟลเดอร์ . ในที่นี้จะมีโฟลเดอร์จำนวนมากซึ่งได้รับการกำหนดเวอร์ชันตามสายโซ่เครื่องมือการสร้างที่คุณใช้ใน Android SDK Manager ZipAlignuser-name/Library/Android/sdk/docsplatform-toolsbuild-toolstoolsadd-onsbuild-toolscd build-toolsมีอยู่ในแต่ละโฟลเดอร์เหล่านี้ ฉันเองไปหาโฟลเดอร์ที่มีเวอร์ชันล่าสุดอยู่ เปิดอะไรก็ได้
บน macOS หรือ Linux คุณอาจต้องใช้./zipalignแทนที่จะพิมพ์เพียงอย่างzipalignเดียวตามที่เอกสารกล่าวถึง บน Windows zipalignดีพอ
ฉันทำให้สิ่งนี้ทำงานได้โดยการคัดลอกวางแอปที่ลงนามใน dir เดียวกันกับ zipalign ดูเหมือนว่า aapt.exe ไม่พบไฟล์ต้นฉบับแม้ว่าจะระบุเส้นทางก็ตาม กล่าวคือไม่ได้ผล zipalign -f -v 4 C: ... \ CordovaApp-release-unsigned.apk C: ... \ destination.apk ถึง aapt.exeCordovaApp-release-unsigned.apk, แช่แข็งและเมื่อกดปุ่ม return 'aapt.exeCordovaApp-release-unsigned.apk' ไม่รู้จักเป็นคำสั่งภายในหรือภายนอกโปรแกรมที่ใช้งานได้หรือไฟล์แบตช์ และสิ่งนี้ทำให้ zipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apk
ฉันรู้ว่าคำถามนี้ถามเกี่ยวกับ Phonegap 3.X โดยเฉพาะ แต่สำหรับการอ้างอิงPhonegap เวอร์ชันใด ๆ ที่สูงกว่า 4.0.0 นั้นใช้ Gradle แทน Antเพื่อสร้างตามค่าเริ่มต้น ในการใช้ Ant แทน Gradle คุณสามารถเพิ่มสิ่งนี้ใน config.xml ของคุณ:
<preference name="android-build-tool" value="ant" />
เมื่อใช้ Gradle ข้อมูลการลงนามที่เก็บคีย์จะต้องไปยังตำแหน่งใหม่ ( ตามที่ระบุไว้ในโพสต์นี้ ) สร้างไฟล์ใหม่ชื่อ ' 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
คุณสามารถลองใช้คำสั่งนี้ควรสร้างและเรียกใช้แอป (ดังนั้นควรสร้าง. apk):
phonegap local run android
<application android:debuggable="true"...ฉันต้องเปลี่ยนเป็นไฟล์<application android:debuggable="false"