开发者工具

AAB 到 APK 转换器在线免费 — 转换应用程序包

免费在线 AAB 到 APK 转换器 — 交互式命令生成器、AAB 文件浏览器、分步转换向导和故障排除指南。适用于 Windows、Mac 和 Linux。

1. 选择您的操作系统

2.AAB文件路径

3.输出APK路径

4. 签名配置

5. 选项

生成的命令


先决条件

安装了 Java JDK 8+
下载bundletool.jar
Android SDK(可选,针对特定设备)
下载捆绑工具

拖放 AAB 文件进行探索

查看任何 AAB 文件的内部结构

支持 .aab 文件
1

下载捆绑工具

Bundletool是Google官方提供的AAB操作工具。从 GitHub 下载最新版本。

wget https://github.com/google/bundletool/releases/latest/download/bundletool-all.jar
2

从 AAB 生成 APK

使用bundletool将AAB文件转换为一组APK。

java -jar bundletool.jar build-apks --bundle=app.aab --output=app.apks
3

生成通用 APK

创建适用于所有设备的单一通用 APK。

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

从APKS中提取APK

输出 .apks 文件是 ZIP 存档。从中提取universal.apk。

unzip app.apks -d output_dir/
5

在设备上安装(可选)

将生成的 APK 直接安装到连接的设备。

java -jar bundletool.jar install-apks --apks=app.apks

Android App Bundle (AAB) 是 Google Play 上 Android 应用程序的发布格式。它包含所有已编译的代码和资源,但将 APK 生成推迟到 Google Play,后者为每个设备配置创建优化的 APK。

不可以。AAB 到 APK 的转换需要无法在 Web 浏览器中运行的 bundletool(一个 Java 应用程序)。您需要在本地安装Java JDK和bundletool。我们的命令生成器有助于生成正确的命令。

当未提供签名信息时会出现此错误。可以使用 --mode=universal 进行无符号测试,也可以提供 --ks、--ks-pass、--ks-key-alias 和 --key-pass 参数。

拆分 APK 针对特定设备进行了优化(基于架构、屏幕密度、语言)。 通用APK 包含所有配置的资源,从而产生更大但普遍兼容的 APK。

Bundletool 是一个 JAR 文件,而不是系统命令。与:java -jar bundletool-all.jar 一起使用。确保已安装 Java JDK 8+ 并且 JAR 文件路径正确。

在线将 AAB 转换为 APK:此工具的实际用途

Android App Bundle (.aab) 是 Google Play 要求开发人员上传的格式,但它不能安装在手机上。如果您有来自构建服务器、CI 管道或同事的 .aab 文件,您首先需要将其转换为可安装的 .apk。此页面为您提供了完成这项工作的两个工具:一个交互式 AAB 到 APK 命令生成器,它为您的操作系统编写准确的捆绑工具命令;另一个 AAB 文件浏览器,它在浏览器中打开捆绑包,以便您可以在转换之前看到里面的内容。

转换本身通过Google官方的bundletool运行,这是一个Java程序。因为bundletool需要Java运行时并访问您的密钥库,所以实际的构建步骤发生在您自己的机器上,而不是我们的服务器上。您的 .aab 文件永远不会上传到任何地方。构建器只是消除了猜测,因此您可以复制正确的、准备运行的命令,而不是记住标志名称。

AAB 与 APK:为什么不能只重命名文件

很多人搜索如何通过重命名扩展名将 AAB 更改为 APK,但从来没有成功过。 .apk 是 Android 可以直接安装的单个独立包。 .aab 是一个发布容器:它保存已编译的代码和分成模块的资源,并且期望 Google Play 或 bundletool 从中生成最终的设备优化 APK。重命名文件不会解压这些模块或签署任何内容,因此 Android 拒绝安装它。转换 Android 应用程序包到 APK 的唯一可靠方法是让 bundletool 为您构建 APK 集。

如何在 Windows、Mac 和 Linux 上将 AAB 转换为 APK

每个平台上的步骤都是相同的,只有文件路径样式发生变化,这就是上面的命令生成器具有 Windows、macOS 和 Linux 开关的原因。以下是从开始到结束的完整流程:

  1. 安装 Java JDK 8 或更高版本。 在终端中运行 java -version 以确认 Java 位于您的 PATH 中。
  2. 下载捆绑工具。 从 Google 官方 GitHub 发布页面获取最新的 bundletool-all.jar。
  3. 构建 APK 集。 将bundletool指向您的捆绑包并让它生成.apks存档:java -jar bundletool-all.jar build-apks --bundle=app.aab --output=app.apks --mode=universal
  4. 打开 .apks 存档。 它只是一个ZIP文件,因此解压它,你会在里面找到universal.apk。
  5. 安装在您的设备上。 将 APK 复制到您的手机并旁加载,或将 bundletool install-apks 与通过 USB 连接的设备一起使用。

通用 APK 与拆分 APK:您应该构建哪一个?

如果您想要一个可以安装在任何手机上的文件,请使用 --mode=universal。这构建了一个 来自 AAB 的通用 APK,将每个 CPU 架构、屏幕密度和语言捆绑到一个包中。它更大,但它是在 Play 商店之外测试、存档或共享构建的最简单选项。如果您忽略该模式,bundletool 会生成针对某一特定设备进行修剪的拆分 APK,因此它们下载的文件较小,但您必须一起安装匹配的集合。对于大多数只需要转换 .aab 以便快速安装的人来说,通用 APK 是正确的选择。

签署从 AAB 获得的 APK

Android 不会安装 APK,除非它经过签名。对于测试,bundletool 可以自动使用调试密钥进行签名,这正是构建器中的“使用调试密钥库”选项的作用。如果您正在准备发布版本,例如要在您自己的网站上分发,请通过填写密钥库路径、密钥库密码、密钥别名和密钥密码字段,使用您自己的密钥库对其进行签名。然后,构建器添加 --ks、--ks-pass、--ks-key-alias 和 --key-pass 标志,以便您获得的 APK 带有真正的生产签名,而不是一次性的调试签名。

常见的bundletool错误以及如何修复它们

有两个问题一再出现。消息“bundletool:找不到命令”意味着您尝试像运行内置命令一样运行bundletool。它是一个 JAR 文件,因此您始终使用 java -jar bundletool-all.jar 来调用它。 “无密钥/证书”错误意味着缺少签名详细信息:为未签名的测试版本添加 --mode=universal,或者提供如上所述的密钥库标志。页面上方的“故障排除”选项卡涵盖了更多内容,并且 AAB 资源管理器可让您在花时间调试命令之前确认您的捆绑包确实包含您期望的模块。

您什么时候真正需要转换 AAB?

通常的原因是在发布之前在真实设备上测试发布版本,将版本交给不使用 Google Play 的测试人员,保留您自己的应用程序的可安装副本作为记录,或者在 Play 商店内部测试未达到的硬件上运行 QA。无论出于何种原因,仅转换您有权使用的应用程序包,例如您自己的构建版本或您有明确使用权限的应用程序包。

由 Shaefale 女士设计并记录 首席开发人员和 Android 包架构师 • 在 Android 12–15 上经过验证

XAPKS 到 APK 工具包中的每个实用程序都通过 JavaScript 和 WebAssembly 在浏览器中本地运行 100%。找到了具有特定封装的边缘案例?向我们的工程团队报告。