在设备上安装 Android 个 App Bundle

Install Android App Bundle on device

我使用新的 Android App Bundle 格式构建了我的项目。使用 APK 文件,我可以将 APK 下载到我的设备,打开它,然后立即安装应用程序。我以捆绑包(.aab 格式)下载我的应用程序,但我的 Nexus 5X 运行 Android 8.1 无法打开该文件。有什么方法可以像安装 APK 一样方便地在设备上安装 AAB?

简答:

不直接。

更长的答案:

Android App Bundle 是 Google Play 商店中应用的默认发布格式。但是 Android 台设备需要 .apk 个文件来安装应用程序。

Play 商店或您从中安装的任何其他来源将从捆绑包中提取 apk,对每个 apk 进行签名,然后将它们安装到特定的目标设备。

从 .aab 到 .apk 的转换是通过 bundletool 完成的。

您可以使用 Internal App Sharing 将应用的可调试版本上传到 Play 商店并与测试人员分享。

直接从设备安装aab,我找不到方法。

但是有一种方法可以使用以下命令通过命令行安装它 documentation You can install apk to a device through BundleTool

根据“@Albert Vila Calvo”的评论,他指出要使用 HomeBrew 安装 bundletools,请使用 brew install bundletool

您现在可以安装从 aab 文件中提取的 apks 并将其安装到设备上

正在通过下一个命令提取 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:password

参数:

  • --捆绑 -> Android 捆绑 .aab 文件
  • --输出 -> 生成的 apk 文件的目标和文件名
  • --ks -> 用于生成 Android 包的密钥库文件
  • --ks-key-alias -> 密钥库文件的别名
  • --ks-pass -> 别名文件的密码(请注意密码值前的 'pass' 前缀)

然后您将得到一个扩展名为.apks 的文件 所以现在你需要将它安装到设备

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

参数:

  • --adb -> adb 文件路径
  • --apks -> 需要安装Apks文件

您无法将应用程序包 [NAME].aab 直接安装到 android 设备,因为它是发布格式,但可以从 bundle 中提取所需的 apk 并安装它给你的设备,过程如下

  1. here
  2. 下载 bundletool
  3. 运行 在您的终端中,
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,在那里你会看到一个列表所有应用程序

android 开发人员参考了捆绑工具 link

使用(在 Linux 上): CD android ./gradlew assemblyRelease|assemblyDebug

为每个案例生成一个未签名的 APK(用于调试或测试)

注意:在 Windows 上,为 gradlew.bat

替换 gradle 可执行文件

对于MAC:

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

如果您想将 apk 从您的 aab 安装到您的设备以进行测试,那么您需要在 运行 在连接的设备上安装它之前编辑配置。

  1. 转到编辑配置
  2. Select 部署下拉菜单并将其从 "Default apk" 更改为 "APK from app bundle"。
  3. 应用更改,然后在连接的设备上运行。进行此更改后,构建时间将增加。

这将直接在从 aab 连接的设备上安装 apk。

对于那些想要在每个 android 设备上 运行 的单个 universal.apk 的人:

brew install bundletool
bundletool build-apks --mode universal --bundle ./app-release.aab --output ./app.apks
mv app.apks app.zip
unzip app.zip

现在,您可以universal.apk

有没有什么方法可以像安装 APK 一样方便地在设备上安装 AAB?

因为安装是通过第三方应用程序或移动公司文件管理器(如应用程序)完成的。
即将推出的文件管理器版本将附带“aab”管理工具。

我在 Playstore 上搜索了“android aab 安装程序”并找到了一个。



故意不命名。
我安装的那个,在线解压包,
但在那之后,这个应用程序无法自行安装这个提取的应用程序(在我的 mi [miui] 设备上)。
但是这个应用程序将在线提取的 apk 保存在 phone 内存中,我可以从那里安装它。
记住:
Google 的“文件”应用程序无法安装此 apk

我的系统(内置)文件管理器能够。

这对我有用mac。 您需要使用一个名为 bundletool 的工具 如果尚未使用 brew

安装,您可以安装它
brew install bundletool

运行 此命令用于提取 apks 文件并将其存储在所需位置

bundletool build-apks --bundle=path/to/app-release.aab --output=/path/to/output/app.apks --local-testing

在已连接的 Android 设备上安装

bundletool install-apks --apks=/path/to/output/app.apks

我已经在此处的要点中记录了完整的命令和输出 https://gist.github.com/maheshmnj/6f5debbfae2b8183d94ca789d081f026