从AAB文件生成Apk文件(Android应用程序捆绑包)

时间:2018-10-29 06:41:40

标签: android android-studio apk android-app-bundle

是否可以通过终端或使用android studio从android app Bundle生成apk文件?

10 个答案:

答案 0 :(得分:8)

人们已经解释了如何使用命令行执行此操作。作为完成,我想我还将展示通过Android Studio中的UI进行操作的方法。

当您打开“运行/调试配置”时,您可以选择“来自应用捆绑包的APK” (而不是“默认APK”)。

查看屏幕截图:

enter image description here

答案 1 :(得分:7)

  

默认情况下,IDE不使用应用程序捆绑包将您的应用程序部署到   本地测试设备

引用bundletool命令

对于Debug apk命令,

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks

对于Release apk命令,

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
--ks=/MyApp/keystore.jks
--ks-pass=file:/MyApp/keystore.pwd
--ks-key-alias=MyKeyAlias
--key-pass=file:/MyApp/key.pwd

答案 2 :(得分:6)

好,这是我必须做的完整方式

1。从此link下载bundletool-all-0.6.0.jar,下载可用的最新版本

2。使用android studio创建一个应用程序包并找到其路径

在我的情况下,其E:\Projects\Android\Temp\app\build\outputs\bundle\debug\app.aab

3。将bundletools jar复制到某个位置并获取其路径

在我的情况下,其E:\Temp\bundletool-all-0.6.0.jar

使用此命令

java -jar "BUNDLE_TOOL_JAR_PATH" build-apks --bundle="BUNDLE_PATH" --output=YOUR_OUTPUT_NAME.apks

我的情况是

java -jar "E:\Temp\bundletool-all-0.6.0.jar" build-apks --bundle="E:\Projects\Android\Temp\app\build\outputs\bundle\debug\app.aab" --output=out_bundle_archive_set.apks

4。这将创建一个文件out_bundle_archive_set.apks,将其重命名为.zip out_bundle_archive_set.zip,解压缩该文件并完成您将有多个apk。

选中此blog post以获得更多信息。还签出official site

答案 3 :(得分:5)

  

Refer Geek Dashboard for more info

对于那些希望通过Android App Bundle生成单个通用APK文件的用户,在运行--universal命令时必须使用build-apks标志。

java -jar bundletool.jar build-apks --bundle=your_app.aab --output=your_app.apks --mode=universal

哪里 bundletool.jar 是您下载的here

的bundletool jar文件

your_app.aab 是您的应用程序的Android应用程序包

your_app.apks 是运行命令后将生成的输出APKs存档文件。

在运行上述命令时,请确保将 bundletool.jar 您的AAB文件放置在同一文件夹中。

现在,您需要将your_app。 apks 文件格式更改为your_app。 zip ,然后解压缩以找到 universal.apk 文件

enter image description here

注意:如果已有同名APK,请使用–overwrite标志覆盖APK文件。否则,bundletool命令将引发致命错误。

答案 4 :(得分:4)

有一个名为bundletool的工具,可以从您的AAB文件中创建APK:

在此找到有关此工具的详细信息:https://developer.android.com/studio/command-line/bundletool

但是这里是该站点的一些亮点:

构建APK

bundletool从您的应用程序捆绑包生成APK时,会将其包含在称为APK集存档的容器中,该容器使用.apks文件扩展名。要为您的应用程序捆绑包中的应用程序支持的所有设备配置生成APK集,请使用bundletool build-apks命令,如下所示:

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks

请注意,以上命令会创建一个未签名APK的APK组。如果要将APK部署到设备上,还需要包括应用程序的签名信息,如下面的命令所示。

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
  --ks=/MyApp/keystore.jks
  --ks-pass=file:/MyApp/keystore.pwd
  --ks-key-alias=MyKeyAlias
  --key-pass=file:/MyApp/key.pwd

安装APK

bundletool install-apks --apks=/MyApp/my_app.apks

生成一组设备专用的APK

bundletool build-apks --connected-device --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks

答案 5 :(得分:1)

根据docs,您可以使用./gradlew :base:bundleDebug来建立base为模块名称的地方。您可以在Android Studio内的终端中尝试该命令。

答案 6 :(得分:1)

在Mac上,可以使用自制软件轻松完成

brew install bundletool

您可以使用下面的命令来生成apk。

bundletool build-apks --bundle=aab_path.aab --output=release.apks

上面的命令生成apks文件,以后可以将其提取以提供各种apk文件。要查看所有生成的文件,请将扩展名从.apks更改为.zip,然后只需提取文件即可。

然后您可以使用此命令在连接的设备上安装APK

bundletool install-apks --apks=release.apks

答案 7 :(得分:0)

到目前为止,没有人提供从AAB获取APK的解决方案。

此解决方案将生成通用二进制文件作为apk。

在您的bundletool命令中添加--mode = universal(如果您需要签名的应用程序,请根据需要使用--ks参数)。

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
--move=universal

将输出文件名从.apks更改为.zip

解压缩并浏览

文件Universal.apk是您的应用程序

这个通用二进制文件可能很大,但是对于发送给质量检查部门或将应用分发到Google Play商店以外的任何地方,这都是一个很好的解决方案。

答案 8 :(得分:0)

这就是我所做的。 首先,我在 Mac 上。 因此,在此官方指南 https://reactnative.dev/docs/signed-apk-android 中,请遵循以下步骤。

  1. 运行此命令 sudo keytool -genkey -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 您可以将 my-upload-key 的名称更改为您的选择
  2. 按照指南设置 gradle 变量
  3. 还按照“将签名配置添加到应用程序的 Gradle 配置”这一点的指南进行操作
  4. 现在您可以做的不是继续(这将生成一个 AAB 文件)。

4.1 我在 Android Studio 中打开同一个项目(android 文件夹)

4.2 来自 Menu Options > Build > Clean Project

4.3 单击 Make Project 按钮并让它完成(如果您可以使用 npm run android 运行,那么这应该没有任何问题地完成) Make Project

4.4 完成后,点击 Menu options > Build > Generate Signed Bundle/APK... Generate Signed Bundle/APK...

4.5 在下一个屏幕中选择 APK 单选按钮并单击下一步 Choose APK option

4.6 在下一个屏幕中,浏览到您作为第一步生成的密钥库文件、其密码、别名和密码,单击下一步。 Final Step

等待它完成。您可能会看到一些错误,但更重要的是最后您应​​该在右下角看到一个弹出窗口,上面写着“定位”。点击它,你会找到你的 app-release.apk。

祝你好运

答案 9 :(得分:-5)

我认为这种方法更有效

enter image description here