Android应用发布时AAB包未生成及上传密钥使用疑问
未生成app-release.aab的排查方向
- 先找对默认输出路径:新版本Android Studio的签名AAB默认输出路径不是你预期的
/Users/me/AndroidStudioProjects/MyApp/app/release,而是app/build/outputs/bundle/release/app-release.aab,先到这个路径下确认文件是否存在,大部分情况是找错了目录,不是构建失败。 - 确认向导中的选项选择正确:走
Build -> Generate Signed Bundle / APK...流程时,第一步要选中Android App Bundle选项,如果误选APK不会生成.aab文件;第二步选择构建变体时要选中release,误选debug的话文件会生成到debug对应目录,不会出现在release路径下。 - 确认签名信息输入无误:流程中输入的密钥库路径、密钥库密码、密钥别名、密钥密码只要有一项错误,构建就会失败不产出文件;同时注意最后一步的Destination Folder是可自定义的,如果你之前改过导出路径,文件会生成到你自定义的位置,可以在项目根目录全局搜索
*.aab定位文件。 - 查看构建日志定位失败原因:打开Android Studio底部的Build窗口,筛选错误级别的日志,常见的构建失败原因包括:release构建类型未关联签名配置、资源冲突、混淆规则错误、依赖版本冲突,对应解决报错后重新构建即可生成文件。
上传密钥配置规范
- 不需要为每款应用单独配置不同的上传密钥,同一个上传密钥可以给你名下的多个应用签名使用,只要妥善保管密钥文件和对应密码、不泄露即可。
- 如果复用已有上传密钥,你当前流程容易遗漏的必要步骤:
- 建议把签名配置固定写入app模块的构建脚本,避免每次走向导手动输入信息出错,Groovy格式的配置参考如下:
android { signingConfigs { release { storeFile file("你的本地密钥文件路径/xxx.jks") storePassword "密钥库密码" keyAlias "密钥别名" keyPassword "密钥对应密码" } } buildTypes { release { signingConfig signingConfigs.release minifyEnabled true // 根据你的需求配置混淆 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } } - 配置完成后不需要每次走Generate Signed Bundle向导,直接在右侧Gradle面板执行
app -> Tasks -> build -> bundleRelease任务即可构建,产出的AAB会固定输出到app/build/outputs/bundle/release/目录下,不会出现路径错乱的问题。 - 给新应用上传首个版本前,要确认Google Play后台创建应用时,没有选择“由Play自动生成上传密钥”的选项,否则本地用自己密钥签名的AAB会和后台要求的签名不匹配,无法正常上传。
- 建议把签名配置固定写入app模块的构建脚本,避免每次走向导手动输入信息出错,Groovy格式的配置参考如下:
注意:如果某款应用已经完成了首次上传并启用了Play应用签名,后续该应用的所有版本更新必须使用首次上传时绑定的上传密钥签名,不能替换成其他密钥,哪怕是你给其他应用用的正常密钥也不行。
内容的提问来源于stack exchange,提问作者Michel
相关产品推荐
相关产品推荐

