You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android应用更新APK签名错误求助:丢失原始密钥库如何完成版本上传

解决Google Play上传APK签名错误及丢失原始Keystore的问题

嘿,这个问题我之前帮朋友踩过坑,咱们一步步捋清楚解决办法:

先搞清楚错误的核心原因

你遇到的ERROR: JAR_SIG_NO_SIGNATURES有两种可能:

  • 要么是你生成的APK根本没完成正确签名;
  • 要么是新密钥和Google Play记录的原始上传密钥不匹配,导致系统不认这个签名。
    但结合你丢失旧keystore的情况,核心矛盾还是新旧签名密钥无法匹配,Google Play不允许用新密钥更新旧应用

第一步:先确认当前APK是否正确签名

先排除签名过程的低级错误,用官方工具验证:

  1. 打开终端,运行apksigner verify --verbose your-release-apk-file.apk
  2. 如果输出显示No APK signatures found,说明签名流程有问题,重新检查:
    • 确保在Android Studio的「Generate Signed Bundle / APK」流程中,正确选择了新的keystore文件,输入了正确的密钥别名、密码,且最终生成的是签名后的release APK
    • 检查项目的build.gradle(Module)文件,确认release构建配置了签名:
      android {
          signingConfigs {
              release {
                  storeFile file("your-new-keystore.jks")
                  storePassword "你的密钥库密码"
                  keyAlias "你的密钥别名"
                  keyPassword "你的密钥密码"
              }
          }
          buildTypes {
              release {
                  signingConfig signingConfigs.release
                  // 其他编译配置
              }
          }
      }
      
  3. 如果apksigner验证通过(显示Verified using v1 scheme (JAR signing): true等类似内容),那问题就聚焦在新旧密钥不匹配上,直接走下面的官方解决方案。

第二步:官方唯一可行的变通方案——申请重置应用签名密钥

当原始上传密钥丢失时,Google Play提供了重置密钥的官方途径,这是唯一能让你继续更新原应用的方法:

  1. 登录Google Play Console,找到你的目标应用;
  2. 进入「发布」>「设置」>「应用签名」页面;
  3. 点击「请求重置密钥」,按照页面提示提交信息:
    • 详细说明你丢失原始上传密钥的情况;
    • 提供新生成密钥的公钥文件(可以用命令生成:keytool -export -rfc -alias 你的密钥别名 -file upload_certificate.pem -keystore 你的新密钥库.jks);
  4. 提交申请后,Google团队会在几个工作日内审核,通过后你就能用新密钥上传应用更新了。

注意:这个重置流程只能申请一次,且必须使用当初上传应用的所有者账号操作,所以要确保你登录的是正确的账号。


临时测试方案(非更新原应用)

如果在等待Google审核期间需要测试重写后的应用,可以创建一个新的应用草稿,用新密钥签名上传作为测试版本,但这个版本无法替代原应用的更新,只能用于内部测试。

内容的提问来源于stack exchange,提问作者Erik Auranaune

火山引擎 最新活动