如果您在发布应用程序时启用了“Google Play应用程序签名”,那么您现在可能正在处理两个指纹:
1. 来自本地密钥库的指纹(keytool -exportcert -keystore path-to-production-keystore -list -v),称为“上传证书”。
2. 启用签名后由Google生成的新指纹(“签名证书”)。
这种情况下的冲突是,您还有两个OAuth 2.0客户端ID:
1. 在发布应用程序之前创建的一个(以及在启用Google签名之前创建的)。
2. 启用Google签名时由Google创建的新客户端ID。
您可以从以下位置验证此事实:
Google Play控制台->游戏服务->选择您的应用程序->API控制台项目->凭据->OAuth 2.0客户端ID
解决方案:
为了使Google登录(以及所有相关的游戏服务功能)正常工作,我必须更正我先前存在的OAuth2客户端ID的指纹(在发布我的应用程序之前创建的那个)。
1. 查找“正确”的OAuth 2.0客户端ID:
Google Play控制台->游戏服务->选择您的应用程序->链接的应用程序->选择您的应用程序->记下底部的“OAuth2客户端ID”。
2. 查找“签名”证书:
Google Play控制台->游戏服务->选择您的应用程序->API控制台项目->凭据->OAuth 2.0客户端ID->“由Google服务自动创建的Android客户端”->记下值(xx:xx:xx:等...)
注:为了在我的其他OAuth 2.0客户端ID中重用此值,我必须将其替换为某些虚拟数字。否则,您将收到错误:“证书已在其他项目中使用”。
3. 转到您现有的OAuth2客户端ID:
Google Play控制台->游戏服务->选择您的应用程序->API控制台项目->凭据->OAuth 2.0客户端ID->从步骤1中选择“OAuth 2.0客户端ID”。
使用步骤2中的证书值更新证书值。
这解决了我的问题。多人游戏完美运行!