ติดตั้ง Android App Bundle บนอุปกรณ์


125

ฉันสร้างโครงการโดยใช้รูปแบบ Android App Bundle ใหม่ ด้วยไฟล์ APK ฉันสามารถดาวน์โหลด APK ลงในอุปกรณ์ของฉันเปิดและติดตั้งแอปได้ทันที ฉันดาวน์โหลดแอปเป็นชุด (รูปแบบ. aab) และ Nexus 5X ที่ใช้ Android 8.1 ไม่สามารถเปิดไฟล์ได้ มีวิธีใดบ้างในการติดตั้ง AAB บนอุปกรณ์ในลักษณะที่สะดวกสบายเช่นเดียวกับ APK


2
ดูเหมือนว่ามันจะใช้เวลาอีกไม่กี่ขั้นตอนกว่า apk ง่ายๆ: developer.android.com/guide/app-bundle/test
Mike M.

คำตอบ:


116

คำตอบสั้น ๆ :

ไม่โดยตรง

คำตอบอีกต่อไป:

Android App Bundles คือรูปแบบการเผยแพร่ อุปกรณ์ Android ต้องการ.apkไฟล์เพื่อติดตั้งแอปพลิเคชัน

PlayStore หรือแหล่งที่มาอื่น ๆ ที่คุณกำลังติดตั้งจำเป็นต้องแยก apks ออกจากบันเดิลเซ็นชื่อแต่ละอันจากนั้นติดตั้งเฉพาะสำหรับอุปกรณ์เป้าหมาย

การแปลงจาก .aab เพื่อ .apk จะทำผ่านbundletool

คุณสามารถใช้Internal App Sharingเพื่ออัปโหลดบิวด์แอปที่แก้ไขข้อบกพร่องได้ไปยัง Play Store และแชร์กับผู้ทดสอบ


ในกรณีใดที่เราจะใช้ตัวเลือก Build Bundle ไม่ใช่ Bundle ที่ลงนามเนื่องจากเราไม่สามารถเผยแพร่แอปดีบักบน play-store ได้
Oush

ฉันจะทำการทดสอบในพื้นที่เป็นหลัก
keyboardurfer

3
Release (แทนไฟล์ต้นฉบับ) ของ bundletool อยู่ที่นี่: github.com/google/bundletool/releases
Kari

ขณะนี้เป็นคำตอบที่ผิดโปรดดูคำตอบอื่น ๆ เพื่อสร้างapksไฟล์
CoolMind

1
@ericn "การเผยแพร่" เริ่มต้นของแอปกำลังดำเนินการตามขั้นตอนปกติ การแชร์แอปภายในใด ๆ ที่คุณทำหลังจากนั้นไม่ควรถูกบล็อกโดยบทวิจารณ์
keyboardurfer

54

การติดตั้ง aab โดยตรงจากอุปกรณ์ฉันหาวิธีไม่ได้

แต่มีวิธีการติดตั้งผ่านบรรทัดคำสั่งของคุณโดยใช้เอกสารต่อไปนี้คุณสามารถติดตั้ง apk ลงในอุปกรณ์ผ่านBundleTool

ตามความคิดเห็นของ "@Albert Vila Calvo" เขาตั้งข้อสังเกตว่าการติดตั้ง Bundletools โดยใช้ HomeBrew brew install bundletool

ตอนนี้คุณสามารถติดตั้งแยก apks จากไฟล์ aab และติดตั้งลงในอุปกรณ์ได้แล้ว

แยกไฟล์ apk จากคำสั่งถัดไป

java -jar bundletool-all-0.3.3.jar build-apks --bundle = bundle.aab --output = app.apks --ks = my-release-key.keystore --ks-key-alias = alias - -ks-pass = pass: รหัสผ่าน

อาร์กิวเมนต์:

  • - มัด -> ไฟล์ Android Bundle .aab
  • --output -> ปลายทางและชื่อไฟล์สำหรับไฟล์ apk ที่สร้างขึ้น
  • --ks -> ไฟล์ Keystore ที่ใช้สร้าง Android Bundle
  • --ks-key-alias -> นามแฝงสำหรับไฟล์ที่เก็บคีย์
  • --ks-pass -> รหัสผ่านสำหรับไฟล์ Alias ​​(โปรดสังเกตคำนำหน้า 'pass' ก่อนค่ารหัสผ่าน)

จากนั้นคุณจะมีไฟล์ที่มีนามสกุล. apk ดังนั้นตอนนี้คุณต้องติดตั้งลงในอุปกรณ์

java -jar bundletool-all-0.6.0.jar install-apks --adb = / android-sdk / platform-tools / adb --apks = app.apks

อาร์กิวเมนต์:

  • --adb -> เส้นทางไปยังไฟล์ adb
  • --apks -> ต้องติดตั้งไฟล์ Apks

25
ถ้าคุณใช้ Mac คุณสามารถติดตั้งกับ Bundletool brew install bundletoolHomebrew: จากนั้นเรียกใช้คำสั่งดังนี้bundletool build-apks --bundle=./app/release/app.aab --output=./app/release/app.apks
Albert Vila Calvo

3
--ks-pass = pass: รหัสผ่านระบุรหัสผ่านสำหรับที่เก็บคีย์ ในการระบุรหัสผ่านสำหรับการใช้ keyfile --key-pass = pass: password
smitty1

ฉันประสบปัญหาเดียวกันฉันทำตามขั้นตอนที่คุณอธิบายไว้อย่างไรก็ตามเมื่อติดตั้งแอปในอุปกรณ์ Android ของฉันฉันไม่สามารถเปิดได้ (มันจะเปิดการปิดโดยอัตโนมัติ)
aName

ขอบคุณ! --key-pass=pass:... เป็นสิ่งจำเป็น แต่แปลกรหัสผ่านไม่ถูกต้องฉันจึงต้องพิมพ์ด้วยตนเอง หลังจากที่... install-apks --adb=...เขียนว่า: 'APK ถูกแยกในไดเรกทอรี: ... ' แต่ไม่มีโฟลเดอร์นั้นและไม่ได้ติดตั้งบนอุปกรณ์
CoolMind

ตัวอย่าง: C:\Users\Aterr\Desktop\hack>java -jar "C:\Users\Aterr\Desktop\hack\bundletool-all-0.10.3.jar" install-apks --adb="C:\Users\Aterr\AppData\Local\Android\Sdk\platform-tools\adb.exe" --apks="C:\Users\Aterr\Desktop\hack\extractedapks.apks"
Choletski

25

คุณไม่สามารถติดตั้งแอปพลิเคกำ[NAME].aabโดยตรงไปยังอุปกรณ์หุ่นยนต์เพราะมันถูกเผยแพร่รูปแบบ แต่มีวิธีการสกัดที่จำเป็นapkจากbundleและติดตั้งให้คุณอุปกรณ์กระบวนการมีดังนี้

  1. ดาวน์โหลด Bundletool จากที่นี่
  2. เรียกใช้สิ่งนี้ในเทอร์มินัลของคุณ
java -jar bundletool.jar build-apks --bundle=bundleapp.aab --output=out_bundle_archive_set.apks
  1. ขั้นตอนสุดท้ายจะสร้างไฟล์ชื่อเป็นout_bundle_archive_set.apksเพียงแค่เปลี่ยนชื่อเป็นout_bundle_archive_set.zipและแตกไฟล์ zip จากนั้นข้ามไปที่โฟลเดอร์out_bundle_archive_set > standalonesซึ่งคุณจะเห็นรายการ apks ทั้งหมด

มีการอ้างอิงจากนักพัฒนา Android สำหรับลิงก์ Bundle Tools

การอ้างอิงสำหรับนักพัฒนา Android


มันต้องมีคีย์การเซ็นชื่อและรหัสผ่านดูstackoverflow.com/a/52704544/2914140และdeveloper.android.com/studio/command-line/bundletool
CoolMind

@CoolMind คีย์การลงนามและรหัสผ่านคือเมื่อคุณต้องการสร้างชุด apk ที่ลงชื่อออกจากชุดรวมและต้องการปรับใช้ apk บนอุปกรณ์ตรวจสอบคำตอบที่อัปเดต
Ali Tamoor

2
ไม่มีโฟลเดอร์ที่ตั้งชื่อแบบสแตนด์อโลน แต่จะมีการแยกชื่อ
Gopal Singh Sirvi

18

สำหรับ MAC:

brew install bundletool
bundletool build-apks --bundle=./app.aab --output=./app.apks
bundletool install-apks --apks=app.apks

หลังจากเทอร์มินัลคำสั่งที่สามแสดงเส้นทางสำหรับแอพ แต่โฟลเดอร์ไม่พร้อมใช้งาน
Furquan

1
@Furquan เส้นทางที่แสดงเป็นเส้นทางในอุปกรณ์ที่เชื่อมต่อของคุณ คำสั่งติดตั้ง apk ลงในอุปกรณ์ของคุณ
Bijoy Thangaraj

9

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

  1. ไปที่แก้ไขการกำหนดค่า
    ใส่คำอธิบายภาพที่นี่
  2. เลือกรายการแบบเลื่อนลงปรับใช้และเปลี่ยนจาก "apk เริ่มต้น" เป็น "APK จากชุดแอป"ใส่คำอธิบายภาพที่นี่
  3. ใช้การเปลี่ยนแปลงแล้วเรียกใช้บนอุปกรณ์ที่เชื่อมต่อ เวลาสร้างจะเพิ่มขึ้นหลังจากทำการเปลี่ยนแปลงนี้

สิ่งนี้จะติดตั้ง apk โดยตรงบนอุปกรณ์ที่เชื่อมต่อจาก aab


1
สิ่งนี้ช่วยให้ฉันสามารถจำลองข้อบกพร่องหนึ่งข้อซึ่งปรากฏเฉพาะในรุ่นที่เผยแพร่เท่านั้น ปรากฎว่าจุดบกพร่องปรากฏขึ้นเมื่อติดตั้งจาก AAB ขอบคุณมาก.
Cerlin

เพื่อชี้แจงฉันคิดว่าคำแนะนำและภาพหน้าจอมาจาก Android Studio? [ฉันใช้ Xamarin ไม่ได้ใช้ Android Studio ฉันรู้ว่านักพัฒนาส่วนใหญ่ใช้ Android Studio อยู่]
ToolmakerSteve

ใช่คำแนะนำและภาพหน้าจอมาจาก android studio 3.6.3
Kartikeya_M

0

ไม่หากคุณกำลังแก้ไขข้อบกพร่องของแอปโดยไม่มีผู้ใช้รายอื่นให้ใช้เมนูBuild> Build APKใน Android Studio หรือเรียกใช้งานในอุปกรณ์ / โปรแกรมจำลองของคุณโปรแกรมแก้ไขข้อบกพร่อง apkจะติดตั้งโดยอัตโนมัติ หากคุณกำลังแก้ไขข้อบกพร่องของแอพกับผู้อื่นให้ใช้เมนูBuild> Generate Signed APK ... หากคุณต้องการเผยแพร่เวอร์ชันเบต้าให้ใช้ Google Play Store APK ของคุณจะอยู่ในapp\build\outputs\apk\debugและapp\releaseโฟลเดอร์ต่างๆ


0

ใช้ (บน Linux): cd android ./gradlew assemblyRelease | assemblyDebug

APK ที่ไม่ได้ลงชื่อถูกสร้างขึ้นสำหรับแต่ละกรณี (สำหรับการดีบักหรือการทดสอบ)

หมายเหตุ: บน Windows ให้แทนที่ไฟล์ปฏิบัติการgradleสำหรับgradlew.bat

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