200

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

4

9 回答 9

185

简短的回答:

不是直接的。

更长的答案:

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

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

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

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

于 2018-05-22T10:38:25.933 回答
71

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

但是有一种方法可以使用以下文档通过命令行安装它您可以通过BundleTool将 apk 安装到设备

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

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

通过下一个命令提取 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:密码

论据:

  • --bundle -> Android Bundle .aab 文件
  • --output -> 生成的 apk 文件的目标和文件名
  • --ks -> 用于生成 Android Bundle 的密钥库文件
  • --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文件
于 2018-10-08T14:31:05.877 回答
58

对于 MAC:

brew install bundletool
bundletool build-apks --bundle=./app.aab --output=./app.apks
bundletool install-apks --apks=app.apks
于 2020-02-25T17:51:51.150 回答
34

您不能[NAME].aab直接将 app bundle 安装到 android 设备上,因为它是发布格式,但是可以从其中提取所需apkbundle内容并将其安装到您的设备上,过程如下

  1. 从这里下载 bundletool
  2. 在您的终端中运行它,
java -jar bundletool.jar build-apks --bundle=bundleapp.aab --output=out_bundle_archive_set.apks
  1. 最后一步将生成一个名为 as 的文件out_bundle_archive_set.apks,只需将其重命名为out_bundle_archive_set.zip并解压缩 zip 文件,跳转到该文件夹out_bundle_archive_set > standalones​​,您将在其中看到所有 apk 的列表

有来自 android 开发人员的参考,用于捆绑工具链接

安卓开发者参考

于 2019-01-28T10:12:39.017 回答
29

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

  1. 转到编辑配置
    在此处输入图像描述
  2. 选择 Deploy 下拉菜单并将其从“Default apk”更改为“APK from app bundle”。在此处输入图像描述
  3. 应用更改,然后在连接的设备上运行它。进行此更改后,构建时间将增加。

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

于 2020-06-03T06:42:55.043 回答
11

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

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

于 2021-08-12T06:49:47.660 回答
0

这在 Mac 上对我有用。您需要使用一个名为bundletool的工具如果尚未安装,您可以安装它brew

brew install bundle tool

运行此命令以提取 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

于 2022-01-03T12:46:19.077 回答
-1

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

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

我在 playstore 上搜索了“android aab 安装程序”并找到了一个。故意不命名。 我安装的那个,在线提取了捆绑包, 但之后这个应用程序无法自行安装这个提取的应用程序(在我的 mi [miui] 设备上)。 但是这个应用程序将在线提取的 apk 保存在手机内存中,我可以从那里安装它。 请记住:Google 的“文件”应用程序无法安装此 apk ,但我的系统(内置)文件管理器能够安装。

在此处输入图像描述









于 2021-10-02T03:39:07.893 回答
-4

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

为每种情况生成一个未签名的 APK(用于调试或测试)

注意:在 Windows 上,将 gradle 可执行文件替换为gradlew.bat

于 2019-06-08T16:42:24.900 回答