如何将未签名Android App Bundle上传至Google Play?求步骤指导
解决未签名AAB上传Google Play的问题及详细步骤
核心问题说明
不管你选哪种Google Play应用签名方案,上传的AAB必须先用「上传密钥」完成签名——Google的应用签名密钥是用来给最终分发给用户的APK签名的,而你提交的AAB必须经过上传密钥签名,否则会提示"The Android App Bundle was not signed."。
最佳方案选择
- 如果你开发者账号下已有其他应用使用Google管理签名密钥的方案:优先选「Use the same key as another app in this developer account」,复用已有的上传密钥,不用重新生成和配置。
- 如果你是新应用,或者没有可复用的上传密钥:选「Let Google manage and protect your app signing key (recommended)」,这是Google官方推荐的安全方案,Google会托管你的应用签名密钥,你只需要管理上传密钥。
详细操作步骤
第一步:确保你有上传密钥(或生成新的上传密钥)
情况1:复用已有上传密钥
直接找到你之前用来给其他应用签名的密钥库文件(.jks或.keystore),确认密钥库的密码、密钥别名、密钥密码,这些信息和你之前签名APK的脚本里的一致即可。
情况2:生成新的上传密钥(新应用选Google管理方案时)
用Java的keytool命令生成新的上传密钥库:
keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore upload-keystore.jks
- 执行命令后会提示你输入密钥库密码、密钥密码,以及姓名、组织等信息(这些信息不影响签名有效性,按需填写即可)。
- 生成的
upload-keystore.jks就是你的上传密钥库,务必妥善保存,不要丢失。
第二步:用上传密钥签名未签名的AAB
用Android SDK里的apksigner工具(通常在$ANDROID_HOME/build-tools/<版本号>/apksigner路径下)对AAB进行签名,命令如下:
apksigner sign --ks upload-keystore.jks --ks-key-alias upload --out signed-app.aab path/to/unsigned-app.aab
- 替换
upload-keystore.jks为你的密钥库文件路径; - 替换
upload为你的密钥别名; - 替换
path/to/unsigned-app.aab为第三方提供的未签名AAB路径; - 执行命令后会提示你输入密钥库密码和密钥密码,输入正确后就会生成签名后的
signed-app.aab。
第三步:上传签名后的AAB到Google Play
- 登录Google Play Console,进入你的应用页面;
- 进入对应分发渠道页面(比如「Production > Main APK/Bundle」或「Internal testing」);
- 点击「Upload bundle」,选择刚才生成的
signed-app.aab; - 若为首次上传该应用的AAB,会进入应用签名设置页面:
- 复用已有密钥:选择「Use the same key as another app in this developer account」,选中对应应用确认即可;
- Google管理密钥:选择「Let Google manage and protect your app signing key (recommended)」,用以下命令导出上传密钥公钥后上传:
上传生成的keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload-key-public.pemupload-key-public.pem文件即可完成配置;
- 验证通过后,即可正常将AAB分发到测试或生产环境。
关于另外两个选项的说明
「Export and upload a key from Java keystore」和「Export and upload a key (not using Java Keystore)」是给已经拥有自己的应用签名密钥的开发者使用的——比如你之前自行管理应用签名密钥,现在要迁移到Google Play,或者导入已有的应用签名密钥,你的场景不需要用到这两个选项,直接忽略即可。
内容的提问来源于stack exchange,提问作者JJR
相关产品推荐
相关产品推荐

