从 AAB 文件中提取 APK
在 Aptoide Connect 开发者控制台上提交您的 Android 应用程序时,要求您上传的文件不是 Android App Bundle(AAB/.aab)。
为此,我们将在下面说明如何提取在我们平台上发布应用所需的 APK。为此,您将使用 bundletool。
如果您无法访问您的 Key Store,请不要遵循本指南
如果您无法访问您的 Key Store 并使用 Google Play 的签名,请不要遵循以下说明。要在使用 Google Play 签名的同时获取独立 APK,请遵循本指南。
如何从 AAB 文件中提取 APK
bundletool 是一种工具,可让您将 AAB 文件转换为多个 APK,然后将其部署到 Android 设备上。您可以从 GitHub 仓库下载 bundletool(请点击此处)。
下载 .jar 文件后,为了运行它,您需要在终端上使用以下命令:
java -jar bundletool-all-1.11.0.jar
要从您的 .aab 文件生成 APK,您必须使用 bundletool 中的 build-apks 命令。使用此命令时,它将通过把 APK 包含在一个名为“APK set archive”(使用 .apks 文件扩展名)的容器中,从您的应用捆绑包生成 APK。以下是其使用示例:
java -jar bundletool-all-1.11.0.jar build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
在此命令中,使用了 2 个标志:
- bundle:您的 .aab 文件的路径;
- output:将生成的 .apks 文件的路径。
要访问 .apks 文件内的文件,只需将文件扩展名更改为 .zip 并解压它。在解压后的文件中,您将看到一个名为 splits 的文件夹,其中包含您的基础 APK(base-master.apk)及其所有拆分。
相反,如果您想要一个独立 APK——包含您应用的所有代码和资源的单个 APK——则需要将 mode 设置为 universal,如以下命令所示:
java -jar bundletool-all-1.11.0.jar build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks --mode=universal
提取包含您应用签名信息的 APK
如果您希望将 APK 部署到 Aptoide Connect,您还需要包含您应用程序的签名信息。以下是其操作示例:
java -jar bundletool-all-1.11.0.jar build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks --mode=universal --ks=/MyApp/keystore.jks --ks-pass=file:/MyApp/keystore.pwd --ks-key-alias=MyKeyAlias --key-pass=pass:mypassword
在此命令中,使用了 4 个新标志:
- ks:您的 keystore 文件的路径
- ks-pass:keystore 的密码(如果以纯文本形式使用,则为 ks-pass=pass:;如果使用文件,则为 ks-pass=file:)
- ks-key-alias:签名密钥的别名/名称
- key-pass:签名密钥的密码(如果以纯文本形式使用,则为 key-pass=pass:;如果使用文件,则为 key-pass=file:)