AAB包转APKS
第一种:AAB包重签为APKS
1、安装依赖工具
- bundletool
- Java JDK (
keytool
在jdk的bin目录下,无需额外安装) - ADB
2、配置环境变量
配置各路径到环境变量Path
,确保CMD中输入java
、keytool
、adb
响应正常无报错。
3、准备签名文件(必需)
若无可用的 keystore 文件(.jks
或 .keystore
),用以下命令生成:
keytool -genkeypair -v -keystore myapp.jks -alias release_key -keyalg RSA -keysize 4096 -validity 20000 -storepass StrongPass!2025 -keypass StrongPass!2025 -dname "CN=My Application, OU=Mobile Dev, O=Tech Inc, L=Beijing, ST=Beijing, C=CN" -noprompt
上述内容中的信息请替换为自己产品对应的信息,进行脱敏处理,注意信息安全~
4、AAB 转 APKS 文件
一键生成通用全量 APK,编写转换代码,文件convert.bat
,内容如下:
@echo off
:: 设置控制台为 UTF-8 编码 (65001)
chcp 65001 > nul
setlocal
:: 配置参数 - 修改以下变量值适配你的环境
set BUNDLETOOL_JAR=bundletool.jar
set KEYSTORE_FILE=myapp.jks
set KEYSTORE_PASS=StrongPass!2025
set KEY_ALIAS=release_key
set KEY_PASS=StrongPass!2025
set AAB_FILE=release.aab
set OUTPUT_APKS=output.apks
:: 自动转换命令
java -jar "%BUNDLETOOL_JAR%" build-apks ^
--bundle="%AAB_FILE%" ^
--output="%OUTPUT_APKS%" ^
--ks="%KEYSTORE_FILE%" ^
--ks-pass=pass:%KEYSTORE_PASS% ^
--ks-key-alias="%KEY_ALIAS%" ^
--key-pass=pass:%KEY_PASS% ^
--mode=universal
:: 结果检查
if exist "%OUTPUT_APKS%" (
echo 转换成功!生成的APKS文件: %OUTPUT_APKS%
echo 包含通用APK: universal.apk
) else (
echo 错误:转换失败,请检查参数和日志
exit /b 1
)
endlocal
pause
将几个文件放在一个文件夹内,双击convert.bat
,当前目录会生成output.apks
第二种:直接转换 🌟
将 aab 文件生成拆分 APKs(使用 bundletool):bundletool build-apks --bundle=app.aab --output=app.apks
APKS安装
方法 1:bundletool命令安装
java -jar bundletool.jar install-apks --apks=output.apks
或者
bundletool install-apks --apks=/path/app.apks --device-id 设备序列号
其中--device-id
指定设备
设备需 开启 USB 调试 并连接电脑,或者使用PC端的安卓模拟器尝试。
其他相关命令:
- 生成当前连接设备的配置文件:
bundletool get-device-spec --output=/path/device.json
- 从 APKS 中提取特定设备所需的 APK 文件:
bundletool extract-apks --apks=xxx.apks --output-dir=/apks --device-spec=device.json
(这样生成的apk文件可由adb install-multiple
安装)
方法 2:解压后adb安装
- 解压 APKS 文件:
修改后缀.apks
→.zip
,解压得到多个 APK 文件,放在apk_files
文件夹中。 - 安装主 APK:
安装所有拆分 APK:adb install-multiple apk_files/*.apk
若存在多份相同配置时可能会遇到如下错误:(这种情况请使用bundletool命令安装)
adb: failed to finalize session
Failure [INSTALL_FAILED_INVALID_APK: Split config.arm64_v8a was defined multiple times]