安卓:应用签名证书和上传证书有什么区别?

8

应用签名证书和上传证书有什么区别?

我在将Google Play游戏集成到我的应用中遇到了问题(我已经在另一个问题中发布了这个问题),我注意到在Google API控制台上自动生成的客户端ID所使用的证书被称为签名证书。
但是,当我在Android Studio上运行签名报告时可以看到的证书名称却叫做上传证书。

哪一个证书应该用于设置客户端ID?顺便说一下,这两个证书都没有解决我的问题,但我很好奇它们之间的区别。

3个回答

5

签名证书

某些Google Play服务(例如Google登录和应用邀请)需要您提供签名证书的SHA-1,以便我们为您的应用创建OAuth2客户端和API密钥。更多信息请参见:文档


上传证书

当您发布一个未经上传密钥签名的应用时,Google Play控制台提供了注册上传密钥的选项,以备将来更新应用程序使用。虽然这是一个可选步骤,但建议您使用与Google Play用于向用户分发应用程序的密钥不同的密钥来发布您的应用程序。这样,Google可以保护您的签名密钥,而您也有重置丢失或被破坏的私有上传密钥的选项。本节描述了如何创建上传密钥、从中生成上传证书,并将该证书注册到Google Play,以备将来更新您的应用程序。 更多信息请参见:文档


我以为在Android Studio上运行签名报告就可以轻松找到我的签名证书。但是我找不到它。我只能找到上传证书。这正常吗? - Ooto
是的,绝对没问题。 - Kabir
感谢,非常感激。 - Ooto

1
在 Play Store 中,应用程序需要签名才能发布和/或更新到用户设备上。这样,除了持有密钥的您之外,没有人可以发布应用程序的更新。然而,如果您失去此密钥(称为发布密钥),则一切都将丢失,因为您将无法再更新应用程序。
因此,谷歌创建了“应用签名”,他们为您保留了该发布密钥(以避免上述情况),而您使用更新密钥来发布新的更新。与以前类似,只有您可以访问此密钥,但是如果您失去它或它被泄露,您始终可以请求一个新的密钥和/或撤消它,使您的应用程序不受影响,因为发布密钥仍然安全保存在谷歌的服务器上。
这就是为什么某些服务(如您的服务)要求您提供发布证书(而不是密钥),您可以在 Play Store 仪表板的应用程序完整性中找到它。

0
另外请注意,如果您同时使用两个密钥(实际上您可以选择管理自己的密钥并不选择加入Play App签名,但我这里没有提到):
- 上传密钥(您的本地密钥库):通常用于提交新的应用到Play商店,但仅用于验证您提交的新版本应用,并在本地进行测试时对apk进行签名,例如在开发过程中分发给团队/质量控制进行测试。 - 签名密钥(由Google管理):当用户从Play商店下载您的应用时,该应用将再次使用签名密钥进行重新签名。
然后,某些服务需要SHA指纹,例如深度链接(应用链接),那么请记住为两个密钥(上传密钥和签名密钥)提交SHA指纹,以便这些服务可以正常工作,无论是本地apk应用还是Play商店应用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接