Android 应用覆盖安装时,包名相同还不够:新旧 APK 必须由同一签名证书签名。Keystore、别名和密码应作为发布资产备份,不要只保存在个人电脑的 JDK bin 目录。
生成 Keystore
在安装了 JDK 的终端中执行:
1 | keytool -genkeypair -v -keystore app-release.jks -alias app-release -keyalg RSA -keysize 2048 -validity 10000 |
按提示填写 Keystore 密码、证书信息和别名密码。-genkeypair 是当前推荐写法;有效期应按组织的发布策略设置,不要把示例数值当作固定要求。
检查证书
1 | keytool -list -v -keystore app-release.jks -alias app-release |
核对输出中的 SHA-1、SHA-256 指纹和证书有效期。若需接入第三方 SDK 或后台白名单,通常应提供对应的证书指纹,而不是上传 Keystore 文件。
安全与升级边界

- 不要把 Keystore、明文密码或
key.properties提交到公开仓库。 - 发布过线上版本后,丢失原签名密钥会导致同包名应用无法覆盖升级;应离线加密备份并限制访问权限。
- Debug 签名不能替代发布签名;CI 应从受保护的密钥存储读取发布凭据。