【发布时间】:2019-09-24 08:59:06
【问题描述】:
我在 Google Play 上有一款游戏需要更新。该游戏是很久以前在Unity 2017 制作的,当时我不记得有任何应用签名过程,或者我不记得那个文件在哪里。
将 apk 上传到 Google play 时出现错误:
Upload failed
You uploaded an APK that is not signed with the upload certificate. You must use the same certificate. The upload certificate has fingerprint:
[ SHA1: F9:F0... ]
and the certificate used to sign the APK you uploaded have fingerprint:
[ SHA1: 3D:67... ]
我搜索了这个问题并关注了以下线程并接受了解决方案:https://answers.unity.com/questions/1372982/how-i-can-sign-my-apk-with-an-google-plays-upload.html 和 Signing an APK with an upload key provided by Google Play
这是我所做的:
- 我统一创建了一个新的密钥库文件和一个新密钥,并为其命名为
user。 - 我从 Play 控制台下载了上传证书。
- 然后我将上传证书添加到我在第一步生成的密钥库文件中:
keytool.exe -importcert -file upload_cert.der -keystore <keystorefile> - 这很好,当我使用以下命令检查密钥库文件时:
keytool.exe -list -keystore "C:\user1.keystore":
.
Keystore type: jks
Keystore provider: SUN
Your keystore contains 2 entries
user, 06-May-2019, PrivateKeyEntry,
Certificate fingerprint (SHA1): FD:A6:5A:...
mykey, 06-May-2019, trustedCertEntry,
Certificate fingerprint (SHA1): F9:F0:89:...
可以看出,该命令将所需的证书密钥添加到我的密钥库中,但它为它创建了一个不同的条目mykey,并且没有覆盖user。
现在,当我想统一构建我的 apk 并从 publishing settings 中选择密钥库和密钥时,那里只显示 user 别名,并且 apk 使用 user SHA1 而不是必需的 @987654334 签名@。
我似乎无法完成这个愚蠢的更新,我浪费了一整天的时间来解决这个问题。任何帮助将不胜感激。
谢谢
【问题讨论】:
-
恐怕如果您丢失了签名密钥,您将无法更新您的应用程序。我学得很辛苦。
-
但我不记得下载过密钥库文件。有一个选项可以让谷歌管理它,我不必有一个物理副本。我就是这么做的。
-
也许您已经使用 Unity 生成了密钥库?如果您使用 Google Play 应用签名为您管理签名密钥,请查看我的回答。
标签: android unity3d google-play apk