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

使用上传证书签名Android APK:如何确保指纹正确

解决APK未使用正确上传证书签名的问题

嘿,这个问题我在开发中碰到过好几次,别着急,咱们一步步来排查和解决:

1. 先确认本地签名用的证书是否匹配Google Play的上传证书

首先你得搞清楚Google Play后台要求的上传证书指纹是什么:

  • 登录Google Play Console,找到你的应用,进入「发布」>「设置」>「应用签名」页面,这里能看到上传证书的SHA-1指纹,把它复制下来存好。
  • 然后检查你本地用来签名的keystore文件的指纹,打开终端/命令提示符,运行这个命令:
    keytool -list -v -keystore your-upload-keystore.jks
    
    输入keystore的密码后,找到SHA-1那一行,和你从控制台复制的对比。如果不一样,说明你用错了keystore文件,得找到当时创建上传证书时生成的那个正确文件。

2. 找不到正确上传证书?重置它(不可逆操作,谨慎执行)

如果你的上传keystore丢失或者损坏了,只能通过Google Play Console重置上传证书:

  • 还是在「应用签名」页面,点击「重置上传证书」选项。
  • 按照提示生成新的上传密钥对:
    keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore upload-keystore.jks
    
  • 接着生成证书请求文件:
    keytool -export -rfc -alias upload -file upload_certificate.pem -keystore upload-keystore.jks
    
  • 把生成的upload_certificate.pem文件上传到控制台,完成重置流程。之后所有要上传的APK都必须用这个新的keystore签名。

3. 检查签名流程是否有误

  • Android Studio签名:在生成签名包/APK时,确保选择的是上传密钥库,而不是调试密钥库或者其他自定义密钥库。注意alias和密码也要对应正确。
  • 命令行签名:确保用对了keystore和alias,完整的签名命令应该是这样的:
    jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore upload-keystore.jks app-release-unsigned.apk upload
    
    签名后别忘了用zipalign对齐APK:
    zipalign -v 4 app-release-unsigned.apk app-release-signed.apk
    

4. 验证签名后的APK指纹

签名完成后,一定要验证一下APK的指纹是否正确,运行这个命令:

keytool -printcert -jarfile app-release-signed.apk

输出的SHA-1指纹和Google Play控制台的上传证书指纹一致,就说明签名正确了,再上传就不会报错啦。

内容的提问来源于stack exchange,提问作者Christian Findlay

火山引擎 最新活动