谷歌应用商店打包改动
- 谷歌需要 aab 包来上架。
- 当前版本为
1.6.61606, 渠道为googleplay - 目前没有使用加固, 直接上传 aab 包到谷歌应用商店
- 目前使用的是谷歌的签名服务,所以没有使用自己的签名文件
- Google Play 账号 RDP:
- ip:
google.zhuishujia.org:25600
- ip:
配置改动
app/build.gradle
- 主要是用来同步 aab 打包的命名和位置以便和 apk 打包的命名和位置一致, 方便后续脚本的使用
gradle.taskGraph.afterTask { Task task ->
if (task.name.startsWith('bundle') && task.name.endsWith('Release') && task.state.failure == null) {
def time = releaseDay()
def variantName = task.name.replace('bundle', '').replace('Release', '').toLowerCase()
// 获取对应的 flavor 配置
def flavorName = ""
def versionName = ""
def versionCode = 0
android.productFlavors.each { flavor ->
if (variantName.startsWith(flavor.name.toLowerCase())) {
flavorName = flavor.name
versionName = flavor.versionName
versionCode = flavor.versionCode
}
}
if (flavorName) {
def bundleDir = "${buildDir}/outputs/bundle/${variantName}Release"
def bundleFile = file("${bundleDir}/app-${flavorName}-release.aab")
if (bundleFile.exists()) {
// 确保目标目录存在
def targetDir = file("${buildDir}/outputs/apk/${flavorName}/release")
targetDir.mkdirs()
def newBundleFile = file("${targetDir}/${flavorName}Apk_v${versionName}_${UM_APP_CHANNEL}_${time}.aab")
bundleFile.renameTo(newBundleFile)
println "✅ AAB 文件已重命名并移动到: ${newBundleFile.absolutePath}"
}
}
}
}
config.gradle 改动
- 谷歌要求最低 android sdk 版本为 35
android = [
compileSdkVersion: 35,
...
targetSdkVersion : 35,
versionCode : 387,//记得修改 qmxs ddyd 最新版为381
...
]
AndroidManifest.xml 改动
- 移除了以下的权限方便上架
<!-- app/src/main/AndroidManifest.xml -->
...
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
tools:node="remove" />
...
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"
tools:node="remove" />
...
<!-- art-app-update/src/main/AndroidManifest.xml -->
...
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" tools:node="remove" />
...
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" tools:node="remove" />
...
打包脚本流程
- 具体流程和 apk 打包大概一致
- 目前使用的是谷歌的签名服务,上传的 aab 包是
app/build/outputs/apk/$env/align/signed目录下的 aab 包
cd build-scripts- 运行
./build-aab.sh打包 aab 包, 输出位置为app/build/outputs/apk/$env/align/signed - 可选 (测试App是否可用) - 加固 aab 目前没有使用加固, 直接上传 aab 包到谷歌应用商店
- 上传 aab 到加固平台
- 把加固后的 aab 包粘贴到
app/build/outputs/apk/xxxw/jiagu目录下 - 运行
./zip-sign-aab.sh签名 aab 包
- 可选 (测试App是否可用) - 测试安装 aab 包
- aab 包需要转换为 apk 包,才能安装
- 该转换需要安装
bundletool工具 - 运行
sh ./aab-to-apk.sh, 默认输入位置为/app/build/outputs/apk/$env/align/signed, 输出位置为app/build/outputs/apk/$env/align/converted-aab
- 上传未签名的 aab 包到谷歌应用商店,使用谷歌开发者的签名进行提交
谷歌开发者界面
左边菜单目录 - 资讯主页
”建立并发布版本“ 项
- 为最关键的上架步骤,该步骤的所有任务必须完成才能上架
- 谷歌有时会要求上架开放性测试包才能继续,只要去左边菜单,点选 “测试及发布 -> 测试 -> 公开测试”,上传一个一样的版本就好了
“测试及发布” 项
- 点击 “正式版“,上传aab包后,两个小时内若有问题,如非法权限,系统会提醒要求开发者提出有力证据证明该app适用该权限并合法
- 通常要求上传示范视频证明该权限的表面用途
- 以下两个权限无法合理化证明:
# 安装App权限,用于强制更新
REQUEST_INSTALL_PACKAGES
# 穿山甲要求的权限,谷歌已经标记就算是三方要求也不可以使用
QUERY_ALL_PACKAGES
“监控及改善” 项
- 点击 “触及率和装置”, 用于去除平板电脑的支持, 否者谷歌会要求上传所有支持的视频和App图像
“开发更多使用者” 项
- 商店资讯 与 商店设定 菜单, 这里通常让运营填入,因为公司的资料,图像,app使用截图,商店背景,App简介,开发者无法获取
作者:verus 创建时间:2025-09-03 13:46
最后编辑:verus 更新时间:2025-09-03 13:47
最后编辑:verus 更新时间:2025-09-03 13:47