我使用了新的 Android App Bundle 格式构建我的项目。使用 APK 文件,我可以将 APK 下载到设备上、打开并立即安装应用程序。但我下载的是一个捆绑文件(.aab 格式),我的运行 Android 8.1 的 Nexus 5X 无法打开此文件。是否有办法以与 APK 相同便捷的方式在设备上安装 AABs?
我使用了新的 Android App Bundle 格式构建我的项目。使用 APK 文件,我可以将 APK 下载到设备上、打开并立即安装应用程序。但我下载的是一个捆绑文件(.aab 格式),我的运行 Android 8.1 的 Nexus 5X 无法打开此文件。是否有办法以与 APK 相同便捷的方式在设备上安装 AABs?
不可以直接使用Android App Bundles。
Android App Bundles是在Google Play Store发布应用的默认格式。但是安装应用程序时需要使用.apk
文件。
Play商店或任何其他来源将从包中提取apks,对每个apk进行签名,然后根据目标设备进行安装。
从.aab转换为.apk是通过bundletool完成的。
您可以使用内部应用程序共享将可调试版本的应用上传到Play商店并与测试人员共享。
对于MAC:
brew install bundletool
bundletool build-apks --bundle=app-release.aab --output=app-release.apks
bundletool install-apks --apks=app-release.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:password
参数:
然后您将获得一个扩展名为.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
。 - Albert Vila Calvo--key-pass=pass:
...是必需的,但奇怪的是密码不正确,所以我必须手动输入。在... install-apks --adb=...
之后,它会写道:“APK已提取到目录中:...”,但该文件夹不存在,并且无法安装到设备上。 - CoolMind因为它是一种发布格式,所以您不能直接安装应用程序包[NAME].aab
到Android设备,但有一种方法可以从中提取所需的apk
并将其安装到您的设备中,具体步骤如下:
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文件,跳转到文件夹out_bundle_archive_set > standalones
,在那里您将看到所有apk的列表。这是来自Android开发人员关于bundle工具的参考link。
对于那些希望获得单个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
我在Mac上试用过这个方法。需要使用一个叫做bundletool的工具。如果尚未安装,你可以使用brew
进行安装。
brew install bundletool
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
要将aab转换为apk,请按照以下简单步骤进行:
1.从this链接下载bundltool-all-1.14.1.jar。
2.将[your-aab-file-name].aab和bundletool-all-1.14.1.jar移动到桌面上。
3.打开终端并输入此代码cd .\Desktop\
,然后按回车键。{这将带您到桌面}
4.现在输入此代码并按回车键:
C:\Users\[Your-user-name]\Desktop\bundletool-all-1.14.1.jar build-apks --bundle=[Your-aab-file-name.aab] --output=app-release.aab.apks --mode=universal
5. 在桌面上会出现一个名为“app-release.aab.apks”的文件,使用WinRAR(或类似的软件)打开它,你就可以得到apk文件,并安装它。
适用于Windows 11:
PS C:/folder-with-aab-file> java -jar C:\dev\bundletool-all-1.9.1\bundletool.jar build-apks --bundle=app-release.aab --output=app-release.aab.apks --mode=universal
PS C:/folder-with-aab-file> ren app-release.aab.apks app-release.aab.apks.zip
解压缩zip文件后,apk文件将被命名为:universal.apk
dotnet publish -f:net6.0-android -c:Release /p:AndroidSigningKeyPass=blah