แปลง AAB เป็น APK ออนไลน์: เครื่องมือนี้ทำอะไรได้จริง
Android App Bundle (.aab) เป็นรูปแบบที่ Google Play ขอให้นักพัฒนาอัปโหลด แต่ไม่ใช่สิ่งที่คุณสามารถติดตั้งบนโทรศัพท์ได้ หากคุณมีไฟล์ .aab จากบิลด์เซิร์ฟเวอร์ ไปป์ไลน์ CI หรือเพื่อนร่วมงาน คุณต้องเปลี่ยนไฟล์นั้นเป็น .apk ที่สามารถติดตั้งได้ก่อน หน้านี้มีสองสิ่งสำหรับงานนั้น: ตัวสร้างคำสั่ง AAB ถึง APK แบบโต้ตอบที่เขียนคำสั่ง Bundletool ที่แน่นอนสำหรับระบบปฏิบัติการของคุณ และ โปรแกรมสำรวจไฟล์ AAB ที่เปิด Bundle ในเบราว์เซอร์ของคุณเพื่อให้คุณเห็นว่ามีอะไรอยู่ข้างในก่อนที่คุณจะแปลงมัน
การแปลงนั้นทำงานผ่าน bundletool อย่างเป็นทางการของ Google ซึ่งเป็นโปรแกรม Java เนื่องจาก Bundletool ต้องการรันไทม์ Java และการเข้าถึงที่เก็บคีย์ของคุณ ขั้นตอนการสร้างจริงจึงเกิดขึ้นบนเครื่องของคุณเอง ไม่ใช่บนเซิร์ฟเวอร์ของเรา ไฟล์ .aab ของคุณจะไม่ถูกอัปโหลดไปที่ใดเลย ตัวสร้างเพียงแค่ลบการคาดเดาออก เพื่อให้คุณสามารถคัดลอกคำสั่งที่ถูกต้องและพร้อมใช้งาน แทนที่จะจำชื่อแฟล็ก
AAB กับ APK: ทำไมคุณไม่สามารถเปลี่ยนชื่อไฟล์ได้
ผู้คนจำนวนมากค้นหาวิธีเปลี่ยน AAB เป็น APK โดยการเปลี่ยนชื่อส่วนขยาย และมันใช้งานไม่ได้ .apk เป็นแพ็คเกจเดียวที่ครบสมบูรณ์ในตัวเองซึ่ง Android สามารถติดตั้งได้โดยตรง .aab เป็นคอนเทนเนอร์การเผยแพร่ โดยจะเก็บโค้ดที่คอมไพล์และทรัพยากรของคุณแยกออกเป็นโมดูล และคาดว่า Google Play หรือ Bundletool จะสร้าง APK สุดท้ายที่ปรับให้เหมาะสมกับอุปกรณ์จากคอนเทนเนอร์นั้น การเปลี่ยนชื่อไฟล์จะไม่คลายแพ็กโมดูลเหล่านั้นหรือเซ็นชื่อใดๆ ดังนั้น Android จึงปฏิเสธที่จะติดตั้ง วิธีเดียวที่เชื่อถือได้ในการแปลง Android App Bundle เป็น APK คือให้ Bundletool สร้างชุด APK ให้กับคุณ
วิธีแปลง AAB เป็น APK บน Windows, Mac และ Linux
ขั้นตอนจะเหมือนกันในทุกแพลตฟอร์ม และมีเพียงรูปแบบเส้นทางของไฟล์เท่านั้นที่เปลี่ยนแปลง ซึ่งเป็นเหตุผลว่าทำไมตัวสร้างคำสั่งด้านบนจึงมีสวิตช์ Windows, macOS และ Linux นี่คือขั้นตอนทั้งหมดตั้งแต่ต้นจนจบ:
- ติดตั้ง Java JDK 8 หรือใหม่กว่า รัน java -version ในเทอร์มินัลเพื่อยืนยันว่า Java อยู่บน PATH ของคุณ
- ดาวน์โหลด Bundletool.dll รับ bundletool-all.jar ล่าสุดจากหน้าเผยแพร่ GitHub อย่างเป็นทางการของ Google
- สร้างชุด APK ชี้เครื่องมือบันเดิลไปที่บันเดิลของคุณและปล่อยให้มันสร้างไฟล์เก็บถาวร .apks: java -jar bundletool-all.jar build-apks --bundle=app.aab --output=app.apks --mode=universal
- เปิดไฟล์เก็บถาวร .apks มันเป็นเพียงไฟล์ ZIP ดังนั้นให้แตกไฟล์ออกมาแล้วคุณจะพบ universal.apk อยู่ข้างใน
- ติดตั้งบนอุปกรณ์ของคุณ คัดลอก APK ไปยังโทรศัพท์ของคุณแล้วไซด์โหลด หรือใช้ bundletool install-apks กับอุปกรณ์ที่เชื่อมต่อผ่าน USB
APK สากลกับ Split APK: คุณควรสร้างอันไหน
หากคุณต้องการไฟล์เดียวที่ติดตั้งบนโทรศัพท์เครื่องใดก็ได้ ให้ใช้ --mode=universal สิ่งนี้จะสร้าง APK สากลจาก AAB ของคุณ เดี่ยวที่รวมสถาปัตยกรรม CPU ทุกตัว ความหนาแน่นของหน้าจอ และภาษาไว้ในแพ็คเกจเดียว มันใหญ่กว่า แต่เป็นตัวเลือกที่ง่ายที่สุดสำหรับการทดสอบ เก็บถาวร หรือการแชร์บิลด์นอก Play Store หากคุณออกจากโหมดนี้ Bundletool จะสร้าง APK แยกที่ถูกตัดสำหรับอุปกรณ์ใดอุปกรณ์หนึ่งแทน เพื่อให้ดาวน์โหลดมีขนาดเล็กลง แต่คุณต้องติดตั้งชุดที่ตรงกันเข้าด้วยกัน สำหรับคนส่วนใหญ่ที่ต้องการแปลง .aab เพื่อการติดตั้งอย่างรวดเร็ว APK สากลคือตัวเลือกที่เหมาะสม
การลงนาม APK ที่คุณได้รับจาก AAB
Android จะไม่ติดตั้ง APK เว้นแต่จะมีการลงนาม สำหรับการทดสอบ Bundletool สามารถลงนามด้วยคีย์ดีบักโดยอัตโนมัติ ซึ่งเป็นสิ่งที่ตัวเลือก "ใช้ที่เก็บคีย์ดีบัก" ในเครื่องมือสร้างทำ หากคุณกำลังเตรียมบิลด์รีลีส เช่น เพื่อแจกจ่ายบนเว็บไซต์ของคุณเอง ให้เซ็นชื่อด้วยที่เก็บคีย์ของคุณเองโดยการกรอกพาธของที่เก็บคีย์ รหัสผ่านของที่เก็บคีย์ นามแฝงของคีย์ และฟิลด์รหัสผ่านของคีย์ จากนั้นตัวสร้างจะเพิ่มแฟล็ก --ks, --ks-pass, --ks-key-alias และ --key-pass เพื่อให้ APK ที่คุณได้รับมีลายเซ็นการผลิตจริงของคุณ แทนที่จะเป็นการดีบักแบบทิ้งไป
ข้อผิดพลาดทั่วไปของ Bundletool และวิธีการแก้ไข
ปัญหาสองข้อเกิดขึ้นซ้ำแล้วซ้ำเล่า ข้อความ "bundletool: ไม่พบคำสั่ง" หมายความว่าคุณพยายามเรียกใช้ Bundletool ราวกับว่าเป็นคำสั่งในตัว มันเป็นไฟล์ JAR ดังนั้นคุณจึงเรียกมันด้วย java -jar bundletool-all.jar เสมอ ข้อผิดพลาด "ไม่มีคีย์/ใบรับรอง" หมายความว่ารายละเอียดการลงนามหายไป: เพิ่ม --mode=universal สำหรับบิลด์ทดสอบที่ไม่ได้ลงนาม หรือระบุแฟล็กที่เก็บคีย์ของคุณตามที่อธิบายไว้ข้างต้น แท็บการแก้ไขปัญหาที่อยู่สูงขึ้นไปบนหน้าจะครอบคลุมสิ่งเหล่านี้มากขึ้นและ AAB Explorer ช่วยให้คุณยืนยันได้ว่าบันเดิลของคุณมีโมดูลที่คุณคาดหวังจริงๆ ก่อนที่คุณจะใช้เวลาในการดีบักคำสั่ง
เมื่อใดที่คุณจะต้องแปลง AAB จริง ๆ
สาเหตุปกติคือการทดสอบบิลด์ที่เผยแพร่บนอุปกรณ์จริงก่อนที่คุณจะเผยแพร่ มอบบิลด์ให้กับผู้ทดสอบที่ไม่ได้ใช้ Google Play เก็บสำเนาแอปของคุณเองที่สามารถติดตั้งได้ไว้เป็นหลักฐาน หรือการรัน QA บนฮาร์ดแวร์ที่การทดสอบภายในของ Play Store ไม่สามารถทำได้ ไม่ว่าจะด้วยเหตุผลใดก็ตาม ให้แปลงเฉพาะ App Bundle ที่คุณมีสิทธิ์ใช้ เช่น บิลด์ของคุณเองหรือ Bundle ที่คุณมีสิทธิ์ที่ชัดเจนในการทำงานด้วย