在教程here中,它表示完全可以为同一个包名使用两个OAuth 2.0客户端ID。
您应该创建两个客户端ID,一个带有版本证书 指纹和另一个带有调试证书指纹。使 一定要为两者使用相同的包名。这允许玩游戏 用于识别来自已签名的链接APK的来电的服务 证书
所以我按照上面链接中的教程进行操作:首先转到Game Service
Developer Console
中的Add a new Game
,Linked app
。然后我在此游戏中添加APIs & auth
,它要求我创建OAuth 2.0客户端ID。使用我的发布密钥的SHA1创建第一个客户端ID后,我找不到任何按钮来创建另一个客户端ID。所以我转到Cloud Developer Console,发现我可以在Credentials
- >下创建第二个客户ID。 debug.keystore
。我使用{{1}}的SHA1作为第二个客户端ID。然后我用调试密钥和释放密钥编译和测试我的示例游戏。
但是,在运行应用程序并尝试登录后,结果是只接受使用发布密钥的应用程序(使用第一个客户端ID),而使用调试密钥的应用程序(使用第二个客户端ID) )不被接受。
然后我尝试在Cloud Developer Console中删除我的发布密钥的客户端ID(以便调试密钥的客户端ID仍然是那里唯一的客户端ID)并再次测试我的应用程序。这次,接受使用调试密钥的应用程序,当然不接受使用发布密钥的应用程序。
这是否意味着我无法为同一个包名创建多个OAuth 2.0客户端ID?
答案 0 :(得分:11)
如同tutorial中的红色警告说明所述:
警告:请勿从Google Developers Console为您的游戏创建新的客户端ID。如果您这样做,Play游戏服务不会将您的游戏设置与客户端ID相关联,这可能会在游戏过程中导致错误。
相反,在开发者控制台的游戏服务部分,转到2. Linked Apps
并选择Link another app
并按照其中的说明,为其命名,例如“游戏名称调试”并使用您的调试键SHA1(每个其他字段应与您的发布应用程序相同)。
答案 1 :(得分:1)
附加说明:
在链接第二个应用时,您必须在Google Play服务中指定其他包。如果您未指定其他包,则不会显示“授权”部分。然后,在授权部分,您可以指定原始包(如果您只想使用一个包来不更改清单)。有点麻烦和怪异,但它的工作原理。