我试图更新Google Play上的版本。上传我签名的APK后,我在Google Play控制台中收到了此错误消息:
您上传了未使用上传证书签名的APK。您必须使用相同的证书。上传证书有指纹:
[SHA1:(SHA1哈希编辑)]
用于签署您上传的APK的证书有指纹:
[SHA1:(不匹配的SHA1哈希编辑)]
我尝试了许多不同的方法来签署我的APK(原始密钥库,不同的密码组合,新的密钥库,不同的密钥组合等)但没有一个成功。
我相当确信密钥库是原始密钥库,因为我将它备份在外部驱动器上,并且文件的两个版本的更新日期在原始版本之前大约30分钟(这是我生成的时候)第一次签名APK)。
由于我使用了Google Play应用程序签名(并且预期的SHA1哈希与我的Play控制台上“应用程序签名”选项卡中的上载证书SHA1哈希相同)我假设我需要将证书导入密钥库I用于上传原始版本APK。
以下是我的结果,我已经反复检查了一段时间以确保它们不是由简单的错字引起的(编辑的部分按值分组为颜色,如果需要我可以发布大部分颜色):
请注意,keystorePass
和实际keyPass
被指定为不同的传递,因此使用keystorePass
两者都会返回“无法恢复密钥”UnrecoverableKeyException,同时使用{{1对于密钥,给出了一个常规异常“回复中的公钥和密钥库不匹配。”
我的一些研究结果显示,如果keyPass
和keystorePass
不相同,则会出现此问题。建议的解决方案是使用keytool将keyPass
更改为与keyPass
相同,但在我假设是一个成功的keytool keypasswd更改后,我仍然得到异常“回复和密钥库中的公钥不匹配。“使用旧的keystorePass
返回预期的错误密码异常。这是一个截图:
出于疑难解答的目的,我尝试将证书直接添加到密钥库。使用keyPass
取得了成功,并从Google Play应用签名中获得了keystorePass
文件的预期SHA1哈希值:
我还尝试创建一个新的密钥库(以及使用相同密码的原始密钥库和新密钥库中的新密钥),但尝试在成功执行keytool上载证书导入后使用带有新密钥库的Android Studio生成签名的APK ,我收到此Android Studio错误:“受信任的证书条目不受密码保护”
我已经在我的gradle app文件(uploade_cert.der
)中使用原始信息和新信息尝试了所有这些步骤,但没有运气。我希望能够更新我的应用程序,并且非常感谢任何提示或帮助。
答案 0 :(得分:3)
您必须尝试以下程序:
您将在本文中找到不同的命令和更多详细信息:
编辑:(来自评论)我认为,如果您已经注册了Google App Signings,则必须与Google支持小组联系,以便您能够上传新的私钥或让您保持私有状态key ...当您订阅Google App Signings时给出的选项,我认为如果您已经注册Google App Signing,则无法使用旧方式辞退您的应用程序。
( Asker的编辑:当您使用原始密钥别名时,不要为密钥库使用不同的密码。请确保keystorePass和keyPass完全匹配。如果您已经上传了密钥库/密钥包含不同的通行证,然后按照Google支持页面上的步骤使用App Signing重置密钥库。)