上传Unity 3D游戏的AAB文件到Google Play发布提示证书无效怎么办?
Google Play上传APK/AAB签名证书未生效报错解决方案
报错原文:You have uploaded an APK file or Android App Bundle signed with a certificate that is not yet valid.
中文翻译:您上传的APK文件或Android App Bundle使用的签名证书尚未生效。
该报错本质是签名证书的生效时间晚于Google Play服务器判定的当前时间,可按以下步骤逐一排查解决:
- 重新生成合规签名证书
优先使用JDK自带的keytool工具生成签名,不要直接用Unity内置的生成功能,生成时主动将证书生效时间向前偏移1天,规避不同设备的时间差问题,操作命令如下:keytool -genkey -v -keystore 你的游戏名.keystore -alias 你的别名 -keyalg RSA -keysize 2048 -validity 10000 -startdate "-1d"
如果本地没有配置JDK环境变量,可以直接进入Unity安装目录下的Editor/OpenJDK/bin路径,在该路径下打开终端/命令提示符执行上述命令。生成完成后执行以下命令验证证书有效期:keytool -list -v -keystore 你的游戏名.keystore
查看输出的Valid from字段,确认生效时间早于当前时间、有效期总时长大于25年即可,生成过程中设置的密钥库密码、别名、别名密码请妥善保存,后续打包必须完全一致。由于你是首次上架应用,更换签名证书不会影响后续版本升级,直接用新生成的证书打包即可。 - 校准打包设备系统时间
将用于打包的Windows/macOS设备的系统时间设置为自动同步网络时间,关闭手动修改时间的选项,确保设备时间和全球标准时间无偏差。 - 核对Unity打包配置
打开Unity编辑器的Build Settings → Player Settings → Publishing Settings,确认勾选「Custom Keystore」选项,导入新生成的keystore文件,依次正确填写密钥库密码、别名、别名密码,关闭所有调试、测试签名相关的开关,将Build Type设置为Release后重新打包上传。 - 规避时区偏差问题
如果你所在时区为西半球时区,可临时将打包设备的时区调整为UTC+0时区,重新打包后再尝试上传,避免时区换算误差导致的生效时间判定错误。 - 核对Google Play应用签名配置
如果你已经提前开启了Google Play的应用签名服务,确认本地打包使用的是你自己设置的上传密钥,不要直接使用Google后台生成的应用签名证书进行本地打包。
内容的提问来源于stack exchange,提问作者Erick0976
相关产品推荐
相关产品推荐

