簡體   English   中英

如何生成包含動態功能模塊的完整APK文件

[英]How to generate full APK file including dynamic feature module

我的項目有動態功能模塊,我想生成包含動態功能的調試或發布 APK。 目前我只能得到基本的 APK 文件。

基本上我會像普通應用程序一樣生成一個APK文件。 但我無法使用動態功能。 是的,我知道動態功能將基於 AAB 工作。

有沒有辦法制作一個普通的(基本+所有模塊)APK文件?。 請幫忙解決這個問題。

謝謝

我沒有在任何地方看到它的記錄,但 Android Gradle 構建工具包括為您提取通用 APK 的任務。 您可以使用類似於以下內容的內容:

./gradlew :yourmodule:packageDebugUniversalApk

在幕后,它使用 bundletool 並與其他答案基本相同,但很高興能夠從 Gradle 做到這一點。

您可以指定您的點播模塊是否需要包含在通常為舊設備生成的通用 APK 中,然后您可以使用bundletool 從 App Bundle 生成通用 APK:

在這種特殊情況下,您可以使用以下內容:

bundletool build-apks --bundle <bundle_file> --output <APKS file> --ks <key_store> --key-pass <jks password> --ks-key-alias <key_alias> --ks-pass <key password> --overwrite --mode=universal

關鍵點是包含 --mode --mode=universal這個指令 bundletool 來生成一個通用 APK,它將包含清單中具有<dist:fusing dist:include="true"/>所有模塊。

以類似的方式,當您在設備上從 Android Studio 運行您的項目時,使用運行的默認配置(部署 = 默認 APK),它包含您的所有按需模塊。
相反,當您使用運行配置(Deploy = APK from AppBundle)從 Studio 運行應用程序時,您可以選擇安裝哪些模塊。

但是,在這兩種情況下,如果您不通過 Play 商店,則無法測試按需模塊下載。

注意(2020 年 11 月)

正如下面的另一個答案所報告的那樣,Android Gradle 插件包含幾個未記錄的任務,可用於生成應用程序的調試和未簽名發布通用 APK。

如果您只需要這種類型的構建,與 Debug 版本相關的任務可以是一個快速的替代方案:

./gradlew :app:packageDebugUniversalApk

此任務將生成(默認情況下) app/build/outputs/universal_apk/debug/app-debug-universal.apk

2019 年 6 月更新

Google 在 I/O Internal App Sharing上引入了它,它允許輕松測試您的 App Bundle 和 APK,包括調試版本:

通過內部應用共享,您可以通過在內部應用共享上傳頁面上傳 APK 或應用包,快速與內部團隊和測試人員共享應用包或 APK。

Github下載 bundletool jar 文件(最新版本 > 資產 > bundletool-all-version.jar 文件)。 將該文件重命名為 bundletool.jar

  1. 從 Android Studio 生成您的 aab 文件,例如:myapp-release.aab
  2. 運行以下命令:

java -jar "path/to/bundletool.jar" build-apks --bundle=myapp-release.aab --output=myapp.apks --ks="/path/to/myapp-release.keystore" --ks -pass=pass:myapp-keystore-pass --ks-key-alias=myapp-alias --key-pass=pass:myapp-alias-pass

  1. 將生成 myapp.apks 文件
  2. 下面是生成通用 apk 的命令

java -jar bundletool.jar build-apks --bundle=nhl.aab --output=nhl.apks --mode=universal

`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM