我使用新的Android App Bundle格式构建了项目。使用APK文件,我可以将APK下载到我的设备上,打开它,然后立即安装该应用。我以捆绑(.aab格式)下载了我的应用,而运行Android 8.1的Nexus 5X无法打开该文件。有什么方法可以以与APK相同的便捷方式在设备上安装AAB?
Answers:
不直接。
Android App Bundles是一种发布格式。Android设备需要.apk
文件才能安装应用程序。
PlayStore或您要从中安装的任何其他源都需要从捆绑中提取apk,对每个apk签名,然后将它们安装到特定于目标设备。
从.aab到.apk的转换是通过bundletool完成的。
apks
文件。
直接从设备安装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:密码
参数:
然后您将拥有一个扩展名为.apks的文件,因此现在您需要将其安装到设备上
java -jar bundletool-all-0.6.0.jar install-apks --adb = / android-sdk / platform-tools / adb --apks = app.apks
参数:
brew install bundletool
。然后只需运行以下命令:bundletool build-apks --bundle=./app/release/app.aab --output=./app/release/app.apks
--key-pass=pass:
...是必需的,但奇怪的是密码不正确,因此我必须手动输入。之后... install-apks --adb=...
它写道:“本的APK已提取的目录:......”,但该文件夹不存在,它不会在设备上安装。
C:\Users\Aterr\Desktop\hack>java -jar "C:\Users\Aterr\Desktop\hack\bundletool-all-0.10.3.jar" install-apks --adb="C:\Users\Aterr\AppData\Local\Android\Sdk\platform-tools\adb.exe" --apks="C:\Users\Aterr\Desktop\hack\extractedapks.apks"
您无法将应用程序捆绑包[NAME].aab
直接安装到android设备,因为它是发布格式,但是有一种方法可以apk
从其中提取所需的内容bundle
并将其安装到您的设备上,过程如下
java -jar bundletool.jar build-apks --bundle=bundleapp.aab --output=out_bundle_archive_set.apks
out_bundle_archive_set.apks
,只需将其重命名out_bundle_archive_set.zip
为zip文件并解压缩该zip文件,然后跳转到文件夹中out_bundle_archive_set > standalones
,您将在其中看到所有apk的列表有来自Android开发人员的捆绑工具链接参考
对于MAC:
brew install bundletool
bundletool build-apks --bundle=./app.aab --output=./app.apks
bundletool install-apks --apks=app.apks
是的,您可能需要使用此Google工具:https : //github.com/google/bundletool
使用(在Linux上): cd android ./gradlew assemblyRelease | assemblyDebug
每种情况都会生成未签名的APK(用于调试或测试)
注意:在Windows上,将gradle可执行文件替换为gradlew.bat