คุณทำงานบิลด์ทั้งหมดที่มีให้กับโปรเจ็กต์ Android ได้โดยใช้
เครื่องมือบรรทัดคำสั่ง Gradle Wrapper ตอนนี้
พร้อมใช้งานเป็นไฟล์แบบกลุ่มสำหรับ Windows (gradlew.bat
) และ Shell
สคริปต์สำหรับ Linux และ Mac (gradlew.sh
) และ
เข้าถึงได้จากรูทของแต่ละโปรเจ็กต์ที่คุณสร้างด้วย Android Studio
หากต้องการเรียกใช้งานด้วย Wrapper ให้ใช้คำสั่งใดคำสั่งหนึ่งต่อไปนี้จาก หน้าต่างเทอร์มินัล (จาก Android Studio ให้เลือกมุมมอง > หน้าต่างเครื่องมือ > เทอร์มินัล):
- บน Command Shell ของ Windows
gradlew task-name
- ใน Mac, Linux หรือ Windows PowerShell ให้ทำดังนี้
./gradlew task-name
หากต้องการดูรายการงานบิลด์ทั้งหมดที่มีสำหรับ
ให้เรียกใช้ tasks
โปรเจ็กต์ของคุณ
gradlew tasks
ส่วนที่เหลือของหน้านี้จะอธิบายพื้นฐานในการสร้างและเรียกใช้แอป ด้วย Gradle Wrapper สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีตั้งค่า บิลด์ของ Android โปรดดูที่กำหนดค่า บิลด์ของคุณ
หากต้องการใช้เครื่องมือ Android Studio แทนบรรทัดคำสั่ง โปรดดูที่สร้างและเรียกใช้แอป
เกี่ยวกับประเภทบิลด์
โดยค่าเริ่มต้น แอป Android ทุกแอปจะมีบิลด์ 2 ประเภท โดยประเภทแรก สำหรับแก้ไขข้อบกพร่องของแอป ทั้งบิลด์แก้ไขข้อบกพร่อง และบิลด์สําหรับเผยแพร่แอป สำหรับผู้ใช้ ซึ่งก็คือบิลด์รุ่น ผลลัพธ์ที่ได้จาก บิลด์ต้องรับรองด้วยใบรับรองก่อนจึงจะทำให้แอปใช้งานได้ใน อุปกรณ์ บิลด์การแก้ไขข้อบกพร่องจะรับรองโดยอัตโนมัติด้วยคีย์การแก้ไขข้อบกพร่องจาก เครื่องมือ SDK (ไม่ปลอดภัยและคุณจะไม่สามารถเผยแพร่ไปยัง Google Play ด้วยเครื่องมือนี้ Store) และบิลด์รุ่นต้องรับรองด้วยคีย์ส่วนตัวของคุณเอง
หากต้องการสร้างแอปสำหรับการเปิดตัว คุณต้อง รับรองแอปด้วยคีย์ Signing ที่เหมาะสม อย่างไรก็ตาม หากคุณเพิ่งเริ่มต้น คุณสามารถเรียกใช้แอปได้อย่างรวดเร็วบน โปรแกรมจำลองหรืออุปกรณ์ที่เชื่อมต่อโดย การสร้าง APK การแก้ไขข้อบกพร่อง
คุณยังกำหนดประเภทบิลด์ที่กำหนดเองใน build.gradle.kts
ได้ด้วย
และกำหนดค่าให้ลงชื่อเป็นบิลด์การแก้ไขข้อบกพร่องโดยรวม
debuggable true
สำหรับข้อมูลเพิ่มเติม
ดูการกำหนดค่าเวอร์ชันของบิลด์
สร้าง APK และทำให้ใช้งานได้
แม้ว่าการสร้าง App Bundle จะเป็นวิธีที่ดีที่สุด ทำแพ็กเกจแอปของคุณแล้วอัปโหลดไปยัง Play Console การสร้าง APK นั้นดีกว่า เหมาะสำหรับเวลาที่คุณต้องการทดสอบบิลด์การแก้ไขข้อบกพร่องหรือแชร์แอปของคุณอย่างรวดเร็ว เป็นอาร์ติแฟกต์ที่นำไปใช้ได้ ร่วมกับคนอื่นๆ
สร้าง APK การแก้ไขข้อบกพร่อง
คุณสร้าง APK การแก้ไขข้อบกพร่องได้สำหรับการทดสอบและการแก้ไขข้อบกพร่องของแอปทันที
APK สำหรับการแก้ไขข้อบกพร่องจะรับรองด้วยคีย์การแก้ไขข้อบกพร่องที่ได้จากเครื่องมือ SDK และ
อนุญาตให้แก้ไขข้อบกพร่องผ่าน adb
ในการสร้าง APK การแก้ไขข้อบกพร่อง ให้เปิดบรรทัดคำสั่งและไปยังรูทของ
ไดเรกทอรีโปรเจ็กต์ ในการเริ่มต้นบิลด์การแก้ไขข้อบกพร่อง ให้เรียกใช้
assembleDebug
งาน:
gradlew assembleDebug
การดำเนินการนี้จะสร้าง APK ชื่อ module_name-debug.apk
ใน
project_name/module_name/build/outputs/apk/
ไฟล์มีการลงนามด้วยคีย์การแก้ไขข้อบกพร่องแล้ว และสอดคล้องกับ
zipalign
เพื่อให้คุณ
ติดตั้งบนอุปกรณ์ทันที
หรือสร้าง APK และติดตั้งทันทีในโปรแกรมจำลองที่ทำงานอยู่ หรือ
อุปกรณ์ที่เชื่อมต่อ ให้เรียกใช้ installDebug
แทน:
gradlew installDebug
"แก้ไขข้อบกพร่อง" ในชื่องานข้างต้นเป็นเพียง
ชื่อเวอร์ชันของบิลด์ในเวอร์ชันอูฐ เพื่อที่จะสามารถแทนที่ด้วยประเภทบิลด์ใดก็ได้ หรือ
ตัวแปรที่ต้องการประกอบหรือติดตั้ง เช่น หากคุณมี "การสาธิต"
เวอร์ชันผลิตภัณฑ์ คุณสามารถสร้างเวอร์ชันแก้ไขข้อบกพร่องด้วย
assembleDemoDebug
งาน
ดูงานการสร้างและติดตั้งทั้งหมดที่มีให้สําหรับแต่ละตัวแปร (รวมถึง
ถอนการติดตั้งงาน) ให้เรียกใช้งาน tasks
นอกจากนี้โปรดดูส่วนวิธีเรียกใช้แอปในโปรแกรมจำลองและเรียกใช้แอปในอุปกรณ์
สร้าง Bundle หรือ APK ของรุ่น
เมื่อพร้อมที่จะเผยแพร่และจัดจำหน่ายแอปแล้ว คุณต้องสร้าง รุ่น Bundle หรือ APK ที่รับรองด้วยคีย์ส่วนตัว สำหรับข้อมูลเพิ่มเติม ไปที่ส่วนวิธีรับรองแอปจาก บรรทัดคำสั่งได้
ทำให้แอปใช้งานได้ในโปรแกรมจำลอง
หากต้องการใช้ Android Emulator คุณต้องสร้าง Android Virtual อุปกรณ์ (AVD) ที่ใช้ Android Studio
เมื่อมี AVD แล้ว ให้เริ่มโปรแกรมจำลอง Android และติดตั้ง ดังนี้
ในบรรทัดคำสั่ง ให้ไปที่
android_sdk/tools/
และเริ่มโปรแกรมจำลองโดย การระบุ AVD ของคุณemulator -avd avd_name
หากไม่แน่ใจเกี่ยวกับชื่อ AVD ให้ดำเนินการ
emulator -list-avds
- ตอนนี้คุณติดตั้งแอปโดยใช้งานการติดตั้งจาก Gradle อย่างใดอย่างหนึ่งได้แล้ว
ที่กล่าวถึงในส่วนเกี่ยวกับวิธีสร้าง APK การแก้ไขข้อบกพร่อง
หรือ
เครื่องมือ
adb
หาก APK สร้างโดยใช้ SDK การแสดงตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ (หาก
targetSdkVersion
คือ ตัวอักษรแทนที่จะเป็นตัวเลข) คุณต้องใส่-t
ตัวเลือก ด้วยคำสั่งinstall
เพื่อติดตั้ง APK ทดสอบadb install path/to/your_app.apk
APK ทั้งหมดที่คุณสร้างจะบันทึกอยู่ใน
project_name/module_name/build/outputs/apk/
โปรดดูข้อมูลเพิ่มเติมที่เรียกใช้แอปในโปรแกรมจำลองของ Android
ทำให้แอปใช้งานได้ในอุปกรณ์จริง
ก่อนที่จะเรียกใช้แอปในอุปกรณ์ คุณต้องเปิดใช้ USB การแก้ไขข้อบกพร่องในอุปกรณ์ คุณจะพบตัวเลือกภายใต้ การตั้งค่า > ตัวเลือกสำหรับนักพัฒนาแอป
หมายเหตุ: ใน Android 4.2 ขึ้นไป ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์จะซ่อนไว้โดยค่าเริ่มต้น หากต้องการทำให้พร้อมใช้งาน ไปที่การตั้งค่า > เกี่ยวกับโทรศัพท์ แล้วแตะสร้าง ตัวเลข 7 ครั้ง กลับไปยังหน้าจอก่อนหน้าเพื่อค้นหา ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์
เมื่อตั้งค่าและเชื่อมต่ออุปกรณ์ผ่าน USB แล้ว คุณก็จะติดตั้งแอปได้
โดยใช้งานการติดตั้ง Gradle ที่ระบุ
ในส่วนวิธีสร้าง APK การแก้ไขข้อบกพร่อง หรือ
เครื่องมือ adb
:
adb -d install path/to/your_app.apk
APK ทั้งหมดที่คุณสร้างจะบันทึกอยู่ใน
project_name/module_name/build/outputs/apk/
สำหรับข้อมูลเพิ่มเติม โปรดดู เรียกใช้แอปในอุปกรณ์ฮาร์ดแวร์
สร้าง App Bundle
Android App Bundle จะรวมแอปทั้งหมด คอมไพล์โค้ดและทรัพยากร แต่เลื่อนเวลาการสร้าง APK และการลงนามไปยัง Google เล่น สิ่งที่ต่างจาก APK คือคุณจะทำให้ App Bundle ใช้งานได้ในอุปกรณ์โดยตรงไม่ได้ ดังนั้น หากต้องการทดสอบหรือแชร์ APK กับผู้อื่นอย่างรวดเร็ว ไม่เช่นนั้น คุณควรสร้าง APK แทน
วิธีที่ง่ายที่สุดในการสร้าง App Bundle คือ
โดยใช้ Android Studio อย่างไรก็ตาม หากคุณจำเป็นต้องสร้าง
App Bundle จากบรรทัดคำสั่ง คุณสามารถทำได้โดยใช้ Gradle หรือ
bundletool
ตามที่อธิบายไว้ในส่วนด้านล่าง
สร้าง App Bundle ด้วย Gradle
หากต้องการสร้าง App Bundle จากบรรทัดคำสั่ง ให้เรียกใช้
bundleVariant
งาน Gradle ในโมดูลฐานของแอป
เช่น คำสั่งต่อไปนี้สร้าง App Bundle สำหรับเวอร์ชันแก้ไขข้อบกพร่อง
ของโมดูลฐาน ได้แก่
./gradlew :base:bundleDebug
หากต้องการสร้าง Bundle ที่ลงนามแล้วเพื่ออัปโหลดไปยัง Play Console คุณต้องมีสิ่งต่อไปนี้
เพื่อกำหนดค่าไฟล์ build.gradle.kts
ของโมดูลฐานด้วยไฟล์
ข้อมูลการลงนาม ดูข้อมูลเพิ่มเติมได้ที่ส่วน "วิธี"
กำหนดค่า Gradle เพื่อรับรองแอป
จากนั้นคุณจะสร้างแอปเวอร์ชันที่เผยแพร่และ Gradle
สร้าง App Bundle โดยอัตโนมัติและรับรองด้วยการลงนาม
ข้อมูลที่คุณให้ไว้ในไฟล์ build.gradle.kts
หากคุณต้องการลงนาม App Bundle เป็นขั้นตอนแยกต่างหากแทน ให้ใช้
jarsigner
เพื่อรับรอง App Bundle จากบรรทัดคำสั่ง คำสั่งในการสร้างแอป
กลุ่มอีเมลคือ:
jarsigner -keystore pathToKeystore app-release.aab keyAlias
สร้าง App Bundle โดยใช้ Bundletool
bundletool
เป็นเครื่องมือบรรทัดคำสั่งที่ Android Studio หรือ Android Gradle
Google Play และ Google Play ใช้เพื่อแปลงโค้ดที่คอมไพล์ของแอปและ
ลงใน App Bundle และสร้าง APK ที่ทำให้ใช้งานได้จาก Bundle เหล่านั้น
ดังนั้น แม้วิธีนี้จะมีประโยชน์
ทดสอบ App Bundle ด้วย bundletool
และสร้างใหม่ภายในเครื่อง
วิธีที่ Google Play สร้าง APK คุณไม่จำเป็นต้อง
เรียกใช้ bundletool
เพื่อสร้าง App Bundle แทน
ใช้งานใน Android Studio หรือ Gradle ดังที่อธิบายไว้ในส่วนก่อนหน้า
อย่างไรก็ตาม หากไม่ต้องการใช้งาน Android Studio หรือ Gradle เพื่อสร้าง
แพ็กเกจ เช่น หากคุณใช้เครื่องมือสร้างบิลด์ที่กำหนดเอง คุณจะใช้ bundletool
ได้
จากบรรทัดคำสั่งเพื่อสร้าง App Bundle จากโค้ดที่คอมไพล์ไว้ล่วงหน้าและ
ที่ไม่ซับซ้อน หากคุณยังไม่ได้อ่าน
ดาวน์โหลด bundletool
จากที่เก็บ GitHub
ส่วนนี้จะอธิบายวิธีจัดแพ็กเกจโค้ดและทรัพยากรของแอปที่คอมไพล์แล้ว
และวิธีใช้ bundletool
จากบรรทัดคำสั่งเพื่อแปลงเป็น
Android App Bundle
สร้างไฟล์ Manifest และทรัพยากรในรูปแบบโปรโต
bundletool
ต้องใช้ข้อมูลบางอย่างเกี่ยวกับโปรเจ็กต์แอปของคุณ เช่น
ไฟล์ Manifest และทรัพยากรของแอป
รูปแบบบัฟเฟอร์โปรโตคอลของ Google ซึ่ง
มีชื่อเรียกอีกอย่างว่า "Protobuf" และใช้นามสกุลไฟล์ *.pb
โปรโตบัฟ
มอบกลไกที่เป็นกลางทางภาษา เป็นกลางในแพลตฟอร์ม และมีความยืดหยุ่น
สำหรับการจัดลําดับข้อมูลที่มีโครงสร้าง ซึ่งมีวิธีคล้ายกับ XML แต่มีขนาดเล็ก เร็วกว่า และ
ง่ายขึ้น
ดาวน์โหลด AAPT2
คุณสามารถสร้างไฟล์ Manifest และตารางทรัพยากรของแอปได้ใน Protobuf ในรูปแบบที่ใช้ AAPT2 เวอร์ชันล่าสุดจาก ที่เก็บของ Google Maven
หากต้องการดาวน์โหลด AAPT2 จากที่เก็บ Maven ของ Google ให้ทำดังนี้
- ไปที่ com.android.tools.build > aapt2 ในส่วน ดัชนีที่เก็บ
- คัดลอกชื่อ AAPT2 เวอร์ชันล่าสุด
ใส่ชื่อเวอร์ชันที่คุณคัดลอกลงใน URL ต่อไปนี้และระบุ ระบบปฏิบัติการเป้าหมาย: https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/aapt2-version/aapt2-aapt2-version-[windows | linux | osx].jar
ตัวอย่างเช่น หากต้องการดาวน์โหลดเวอร์ชัน 3.2.0-alpha18-4804415 สำหรับ Windows คุณสามารถ จะใช้: https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/3.2.0-alpha18-4804415/aapt2-3.2.0-alpha18-4804415-windows.jar
ไปที่ URL ในเบราว์เซอร์ - AAPT2 จะเริ่มดาวน์โหลดในไม่ช้า
แยกแพ็กเกจไฟล์ JAR ที่คุณเพิ่งดาวน์โหลด
คอมไพล์และลิงก์ทรัพยากรของแอป
ใช้ AAPT2 เพื่อคอมไพล์ทรัพยากรของแอปด้วยคำสั่งต่อไปนี้
aapt2 compile \ project_root/module_root/src/main/res/drawable/Image1.png \ project_root/module_root/src/main/res/drawable/Image2.png \ -o compiled_resources/
ในขั้นตอนการลิงก์ ซึ่ง AAPT2 จะลิงก์ทรัพยากรต่างๆ ที่คอมไพล์เข้าด้วยกันลงใน
APK เดี่ยว ให้คำสั่ง AAPT2 ในการแปลงไฟล์ Manifest ของแอปและทรัพยากรที่คอมไพล์
ลงในรูปแบบ Protobuf โดยใส่ Flag --proto-format
ดังที่แสดงด้านล่าง
aapt2 link --proto-format -o output.apk \ -I android_sdk/platforms/android_version/android.jar \ --manifest project_root/module_root/src/main/AndroidManifest.xml \ -R compiled_resources/*.flat \ --auto-add-overlay
จากนั้นคุณสามารถแยกเนื้อหาจาก APK เอาต์พุต เช่น
AndroidManifest.xml
, resources.pb
และไฟล์ทรัพยากรอื่นๆ ในขณะนี้
ในรูปแบบ Protobuf คุณต้องใช้ไฟล์เหล่านี้เมื่อเตรียมอินพุต
bundletool
กําหนดให้สร้าง App Bundle ของคุณตามที่อธิบายไว้ใน
โค้ดและทรัพยากรที่คอมไพล์ไว้ล่วงหน้า
ก่อนใช้ bundletool
เพื่อสร้าง App Bundle สำหรับแอป คุณต้อง
ก่อนอื่นให้จัดเตรียมไฟล์ ZIP ที่แต่ละไฟล์มีโค้ดและทรัพยากรสำหรับ
โมดูลแอปที่ระบุ เนื้อหาและการจัดระเบียบไฟล์ ZIP ของแต่ละโมดูล
คล้ายกับรูปแบบ Android App Bundle
เช่น คุณควรสร้างไฟล์ base.zip
สำหรับโมดูลฐานของแอปและ
จัดระเบียบเนื้อหาดังนี้
ไฟล์หรือไดเรกทอรี | คำอธิบาย |
---|---|
manifest/AndroidManifest.xml
|
ไฟล์ Manifest ของโมดูลในรูปแบบ Protocolbuf |
dex/...
|
ไดเรกทอรีที่มีไฟล์ DEX ที่คอมไพล์ของแอปอย่างน้อย 1 ไฟล์ ไฟล์เหล่านี้
ควรตั้งชื่อดังนี้: classes.dex ,
classes2.dex , classes3.dex ฯลฯ
|
res/...
|
มีทรัพยากรของโมดูลในรูปแบบ Protobuf สำหรับอุปกรณ์ทั้งหมด การกำหนดค่าเอง ไดเรกทอรีย่อยและไฟล์ควรจัดระเบียบในลักษณะเดียวกับ APK ทั่วไป |
root/... , assets/... และ lib/...
|
ไดเรกทอรีเหล่านี้เหมือนกับที่ระบุไว้ในส่วนที่เกี่ยวกับ รูปแบบ Android App Bundle |
resources.pb
|
ตารางทรัพยากรของแอปในรูปแบบ Protocolbuf |
หลังจากที่คุณเตรียมไฟล์ ZIP สำหรับแต่ละโมดูลของแอปแล้ว คุณสามารถส่งไฟล์เหล่านั้น
ลงใน bundletool
เพื่อสร้าง App Bundle ตามที่อธิบายไว้ในส่วนต่อไปนี้
สร้าง App Bundle โดยใช้ Bundletool
หากต้องการสร้าง App Bundle ให้ใช้คำสั่ง bundletool build-bundle
ตาม
แสดงอยู่ด้านล่าง
bundletool build-bundle --modules=base.zip --output=mybundle.aab
ตารางต่อไปนี้อธิบายแฟล็กสำหรับคำสั่ง build-bundle
สำหรับ
รายละเอียด:
ตั้งค่าสถานะ | คำอธิบาย |
---|---|
--modules=path-to-base.zip, path-to-module2.zip,path-to-module3.zip
|
ระบุรายการไฟล์ ZIP ของโมดูลที่ bundletool ควร
ใช้สร้าง App Bundle
|
--output=path-to-output.aab
|
ระบุเส้นทางและชื่อไฟล์สำหรับไฟล์เอาต์พุต *.aab
|
--config=path-to-BundleConfig.json
|
ระบุเส้นทางไปยังไฟล์การกำหนดค่าที่ไม่บังคับซึ่งคุณสามารถใช้เพื่อ ปรับแต่งกระบวนการบิลด์ หากต้องการเรียนรู้เพิ่มเติม โปรดดูหัวข้อเกี่ยวกับ การปรับแต่งการสร้าง APK ดาวน์สตรีม |
--metadata-file=target-bundle-path:local-file-path
|
สั่งให้ bundletool สร้างแพ็กเกจไฟล์ข้อมูลเมตาที่ไม่บังคับ
ภายใน App Bundle ของคุณ คุณใช้ไฟล์นี้เพื่อรวมข้อมูล เช่น
การแมป ProGuard หรือรายการไฟล์ DEX ทั้งหมดของแอป ซึ่งอาจ
มีประโยชน์กับขั้นตอนอื่นๆ ใน Toolchain หรือ App Store
target-bundle-path ระบุเส้นทางที่สัมพันธ์กับรากของ App Bundle ที่ต้องการใส่ไฟล์ข้อมูลเมตา และ local-file-path จะระบุเส้นทางไปยังข้อมูลเมตาในเครื่อง ของคุณ |
ปรับแต่งการสร้าง APK ดาวน์สตรีม
App Bundle มีไฟล์ BundleConfig.pb
ที่ให้ข้อมูลเมตาซึ่งแอป
Store เช่น Google Play ต้องใช้เมื่อสร้าง APK จากแพ็กเกจ
แม้ว่า bundletool
จะสร้างไฟล์นี้ให้คุณ แต่คุณสามารถกำหนดค่าบางอย่างได้
ของข้อมูลเมตาในไฟล์ BundleConfig.json
และส่งไปยัง
คำสั่ง bundletool build-bundle
- bundletool
จะแปลงและผสานรายการนี้ในภายหลัง
ที่มีเวอร์ชัน Protobuf รวมอยู่ใน App Bundle แต่ละชุด
เช่น คุณควบคุมได้ว่าจะเปิดใช้ APK การกำหนดค่าหมวดหมู่ใด หรือ
ปิดใช้ ตัวอย่างต่อไปนี้ของไฟล์ BundleConfig.json
ถูกปิดใช้
APK การกำหนดค่าซึ่งแต่ละภาษากำหนดเป้าหมายเป็นภาษาอื่น (กล่าวคือ
ทรัพยากรสำหรับทุกภาษาจะรวมอยู่ในฐานที่เกี่ยวข้องหรือ
APK ฟีเจอร์):
{
"optimizations": {
"splitsConfig": {
"splitDimension": [{
"value": "LANGUAGE",
"negate": true
}]
}
}
}
ในไฟล์ BundleConfig.json
คุณยังระบุประเภทไฟล์ที่ต้องการออกได้อีกด้วย
ไม่ได้บีบอัดเมื่อแพ็กเกจ APK ที่ใช้
รูปแบบ glob ดังนี้
{
"compression": {
"uncompressedGlob": ["res/raw/**", "assets/**.uncompressed"]
}
}
โปรดทราบว่า โดยค่าเริ่มต้น bundletool
จะไม่บีบอัดโฆษณาเนทีฟของแอป
ไลบรารี (ใน Android 6.0 ขึ้นไป) และทรัพยากร
ตาราง (resources.arsc
) สำหรับคำอธิบายโดยละเอียดเกี่ยวกับสิ่งที่คุณกำหนดค่าได้ใน
BundleConfig.json
โปรดตรวจสอบ bundletool
config.proto
ซึ่งเขียนโดยใช้ Proto3
ไวยากรณ์
ทำให้แอปใช้งานได้จาก App Bundle
หากคุณได้สร้างและรับรอง App Bundle แล้ว
ใช้ bundletool
เพื่อสร้าง APK และทำให้ใช้งานได้เพื่อ
อุปกรณ์
ลงนามแอปจากบรรทัดคำสั่ง
คุณไม่จำเป็นต้องใช้ Android Studio ในการลงนามแอป คุณสามารถลงนามแอปได้จาก
บรรทัดคำสั่ง โดยใช้ apksigner
สำหรับ APK หรือ jarsigner
สำหรับ App Bundle
หรือกำหนดค่า Gradle
รับรองให้คุณในระหว่างการสร้าง แต่ไม่ว่าจะเลือกแบบใด คุณก็ต้อง
ก่อนอื่นให้สร้างคีย์ส่วนตัวโดยใช้
keytool
ดังที่แสดงด้านล่าง
keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias
ตัวอย่างด้านบนจะระบุรหัสผ่านสำหรับคีย์สโตร์และคีย์ และสำหรับ
"ชื่อเฉพาะ" สำหรับคีย์ของคุณ จากนั้นจะสร้าง
คีย์สโตร์เป็นไฟล์ชื่อ my-release-key.jks
โดยบันทึกไว้ใน
ไดเรกทอรีปัจจุบัน (คุณสามารถย้ายไปไว้ที่ใดก็ได้ที่ต้องการ) คีย์สโตร์
มีคีย์เดียวที่มีอายุ 10,000 วัน
ตอนนี้คุณสามารถรับรอง APK หรือ App Bundle ด้วยตนเอง หรือกำหนดค่า Gradle ให้รับรองได้ แอปของคุณในระหว่างกระบวนการบิลด์ตามที่อธิบายไว้ในส่วนด้านล่าง
ลงนามแอปด้วยตนเองจากบรรทัดคำสั่ง
หากต้องการรับรอง App Bundle จากบรรทัดคำสั่ง ให้ใช้
jarsigner
หากต้องการลงนาม APK คุณต้องใช้ zipalign
และ apksigner
แทน
ตามที่อธิบายไว้ด้านล่าง
- เปิดบรรทัดคำสั่ง จาก Android Studio เลือกมุมมอง > หน้าต่างเครื่องมือ เทอร์มินัล - และไปยังไดเรกทอรีที่ APK ที่ไม่ได้ลงนามของคุณ ทราบตำแหน่งแล้ว
-
ปรับแนว APK ที่ไม่ได้ลงนามโดยใช้
zipalign
:zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
zipalign
ดูแลให้ข้อมูลที่ไม่ได้บีบอัดทั้งหมดขึ้นต้นด้วย การจัดชิดขอบไบต์เฉพาะที่สัมพันธ์กับจุดเริ่มต้นของไฟล์ ซึ่งอาจ ลดปริมาณ RAM ที่แอปใช้ -
ลงนาม APK ด้วยคีย์ส่วนตัวโดยใช้
apksigner
:apksigner sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk
ตัวอย่างนี้แสดง APK ที่ลงนามที่
my-app-release.apk
หลังจากลงชื่อเข้าใช้ด้วยคีย์ส่วนตัวและใบรับรองที่เก็บไว้ใน ไฟล์ KeyStore ไฟล์เดียว:my-release-key.jks
เครื่องมือ
apksigner
รองรับตัวเลือกการรับรองอื่นๆ รวมถึง การรับรองไฟล์ APK โดยใช้คีย์ส่วนตัวและไฟล์ใบรับรองแยกต่างหาก และ การรับรอง APK โดยใช้ผู้ลงนามหลายคน ดูรายละเอียดเพิ่มเติมได้ที่apksigner
ข้อมูลอ้างอิงหมายเหตุ: หากต้องการใช้เครื่องมือ
apksigner
คุณต้อง ติดตั้งเครื่องมือสร้าง Android SDK เวอร์ชัน 24.0.3 ขึ้นไป คุณอัปเดตแพ็กเกจนี้ได้โดยใช้ SDK Manager -
ตรวจสอบว่าได้ลงนาม APK แล้ว โดยทำดังนี้
apksigner verify my-app-release.apk
กำหนดค่า Gradle เพื่อรับรองแอปของคุณ
เปิดไฟล์ build.gradle.kts
ระดับโมดูลและเพิ่ม
บล็อก signingConfigs {}
ที่มีรายการสำหรับ storeFile
storePassword
, keyAlias
และ
keyPassword
แล้วส่งวัตถุนั้นไปยัง
signingConfig
พร็อพเพอร์ตี้ในประเภทบิลด์ของคุณ เช่น
Kotlin
android { ... defaultConfig { ... } signingConfigs { create("release") { // You need to specify either an absolute path or include the // keystore file in the same directory as the build.gradle file. storeFile = file("my-release-key.jks") storePassword = "password" keyAlias = "my-alias" keyPassword = "password" } } buildTypes { getByName("release") { signingConfig = signingConfigs.getByName("release") ... } } }
ดึงดูด
android { ... defaultConfig { ... } signingConfigs { release { // You need to specify either an absolute path or include the // keystore file in the same directory as the build.gradle file. storeFile file("my-release-key.jks") storePassword "password" keyAlias "my-alias" keyPassword "password" } } buildTypes { release { signingConfig signingConfigs.release ... } } }
ทีนี้เมื่อคุณสร้างแอปโดย เมื่อเรียกใช้ Gradle ขึ้น Gradle เซ็นแอปของคุณ (และเรียกใช้ Zipalign) ให้กับคุณ
นอกจากนี้ เนื่องจากคุณได้กำหนดค่าบิลด์รุ่นด้วยคีย์ Signing
"ติดตั้ง" พร้อมใช้งานสำหรับบิลด์ประเภทนั้น คุณสามารถสร้าง จัดแนว
และติดตั้ง APK ของรุ่นในโปรแกรมจำลองหรืออุปกรณ์
installRelease
งาน
แอปที่ลงนามด้วยคีย์ส่วนตัวของคุณพร้อมสำหรับการเผยแพร่แล้ว แต่คุณควร ให้อ่านเพิ่มเติมเกี่ยวกับวิธีเผยแพร่ แอปของคุณ และตรวจสอบรายการตรวจสอบการเปิดตัว Google Play