在设备上安装Android App Bundle

时间:2018-05-18 21:07:09

标签: android android-app-bundle

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

8 个答案:

答案 0 :(得分:24)

简答:否

更长的答案:

Android App Bundles是一种发布格式。 Android设备需要.apk文件来安装应用程序。

PlayStore或您正在安装的任何其他来源需要从捆绑包中提取apks,对每个来源进行签名,然后安装特定于目标设备的API。

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

完成的

答案 1 :(得分:17)

对于MAC:

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

答案 2 :(得分:10)

直接从设备安装aab,我找不到解决方法。 但是有一种方法可以使用以下documentation通过命令行安装它:您可以通过BundleTool将apk安装到设备上 现在,您可以安装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捆绑包的密钥库文件
--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文件

答案 3 :(得分:9)

如果要从aab将apk安装到设备中以进行测试,则需要先编辑配置,然后才能在连接的设备上运行它。

  1. 转到“编辑配置”
    enter image description here
  2. 选择“部署”下拉菜单,并将其从“默认apk”更改为“来自应用捆绑包的APK”。enter image description here
  3. 应用更改,然后在连接的设备上运行它。进行此更改后,构建时间将增加。

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

答案 4 :(得分:2)

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

  1. here下载应用捆绑包
  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

答案 5 :(得分:0)

不,如果您正在调试没有其他用户的应用,请使用构建>在Android Studio中构建APK(s)菜单或在您的设备/模拟器中执行它们调试版apk 将自动安装。如果您正在与其他人调试应用,请使用构建>生成签名APK ... 菜单。如果您要发布测试版,请使用Google Play商店。您的APK将位于app\build\outputs\apk\debugapp\release个文件夹中。

答案 6 :(得分:0)

是的,您可能需要使用以下Google工具: https://github.com/google/bundletool

答案 7 :(得分:-1)

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

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

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