在设备上安装Android应用程序包

在设备上安装Android应用程序包,android,android-app-bundle,Android,Android App Bundle,我使用新的Android应用程序包格式构建了我的项目。使用APK文件,我可以将APK下载到我的设备上,打开它,然后立即安装应用程序。我下载了一个捆绑包(.aab格式),运行安卓8.1的Nexus 5X无法打开该文件。是否有任何方法可以像APK一样方便地在设备上安装AAB 简短答复: 不直接 详细回答: Android应用捆绑包是一种发布格式。Android设备需要.apk文件才能安装应用程序 PlayStore或您正在安装的任何其他源需要从捆绑包中提取APK,对每个APK进行签名,然后安装特定于

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

简短答复: 不直接

详细回答: Android应用捆绑包是一种发布格式。Android设备需要
.apk
文件才能安装应用程序

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

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


您可以使用将应用程序的可调试版本上载到Play Store并与测试人员共享。

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

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

根据“@Albert Vila Calvo”的评论,他指出,要使用自制软件安装bundletool,请使用
brew安装bundletool

现在可以从aab文件安装extract APK并将其安装到设备上

通过下一个命令从中提取apk文件

java-jar bundletool-all-0.3.3.jar构建apks--bundle=bundle.aab--output=app.apks--ks=my-release-key.keystore--ks-key别名=alias--ks-pass=pass:password

论据:

  • --bundle->Android bundle.aab文件
  • --输出->生成的apk文件的目标和文件名
  • --ks->用于生成Android捆绑包的密钥库文件
  • --密钥库文件的ks密钥别名->别名
  • --ks pass->别名文件的密码(请注意密码值前的“pass”前缀)
然后您将拥有一个扩展名为.apks的文件 因此,现在您需要将其安装到设备上

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

论据:

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

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

  • 从下载bundletool
  • 在你的终端上运行这个
  • 最后一步将生成一个名为
    out\u bundle\u archive\u set.apks
    ,只需将其重命名为
    out\u bundle\u archive\u set.zip
    并提取zip文件,跳入文件夹
    out\u bundle\u archive\u set>standalones
    ,在那里您将看到所有APK的列表
  • 有来自android开发者的捆绑工具参考

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

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

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

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

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

  • 转到编辑配置
  • 选择Deploy下拉列表并将其从“默认apk”更改为“apk from app bundle”
  • 应用更改,然后在连接的设备上运行。进行此更改后,构建时间将增加
    这将在从aab连接的设备上直接安装apk。

    看起来它比简单的apk需要更多的步骤:。在这种情况下,我们会使用生成捆绑包选项,而不是签名捆绑包,因为我们无法在play Store上发布调试应用程序。我主要是为了本地测试。发布(而不是源文件)bundletool的示例如下:当前答案是错误的,请参阅其他答案以创建
    apks
    文件。@ericn应用程序的初始“发布”正在进行常规过程。您事后进行的任何内部应用共享都不应被评论阻止。如果您使用Mac,您可以使用自制软件安装Bundletool:
    brew安装Bundletool
    。然后运行如下命令:
    bundletool build apks--bundle=./app/release/app.aab--output=./app/release/app.apks
    --ks pass=pass:password指定密钥库的密码。要为keyfile指定密码,请使用--key pass=pass:password我面临同样的问题,我遵循了您描述的步骤,但是,当应用程序安装在我的android设备中时,我无法打开它(它会自动打开和关闭),谢谢<代码>--密钥传递=传递:
  • 。。。是必需的,但奇怪的是密码不正确,所以我必须手动键入。在
    之后。。。安装apks--adb=…
    它写道:“apks已被提取到目录:…”,但该文件夹不存在,并且它不安装在设备上。例如:
    C:\Users\Aterr\Desktop\hack>java-jar“C:\Users\Aterr\Desktop\hack\bundletool-all-0.10.3.jar”安装apks--adb=“C:\Users\Aterr\AppData\Local\Android\Sdk\platform tools\adb.exe”--apks=“C:\Users\Aterr\Desktop\hack\extracteddapks.apks”“
    它需要签名密钥和密码,请参阅和。@请注意签名密钥和密码是当您要从捆绑包中构建签名apk集,并要在设备上部署apk时,请检查更新的应答没有文件夹NAMME standalones,取而代之的是nammed splitsafter,第三个命令终端显示了应用程序的路径,但文件夹没有显示available@Furquan,显示的路径是连接设备中的路径。该命令将apk安装到您的设备上。这帮助我复制了一个仅在发布版本中出现的错误。事实证明,从AAB安装时出现了错误。非常感谢,就为了克拉丽
    brew install bundletool
    bundletool build-apks --bundle=./app.aab --output=./app.apks
    bundletool install-apks --apks=app.apks