Unity 2017.2项目关闭Alpha/Beta测试后Google Play登录认证失败求助
解决Google Play登录正式版报错status 10的问题
兄弟,我之前踩过一模一样的坑!测试版Alpha/Beta阶段登录完全正常,一关测试切正式发布就直接报Google Play Service can't authenticate , Op: SIGN_IN status: 10,折腾了好几天才搞定,给你梳理几个最核心的排查方向和解决办法:
1. 先搞定签名对应的OAuth客户端ID
测试阶段你大概率用的是调试签名的SHA-1配置的客户端ID,但正式发布用的是发布签名,这俩SHA-1完全不一样!Google认的是签名匹配的客户端ID,不匹配直接拒登。
- 先拿你的发布签名文件生成SHA-1:
keytool -list -v -keystore 你的发布签名文件.jks - 去Google Cloud Console找到你的项目,进「API和服务→凭据」,新增一个Android客户端ID,填你的包名和刚才生成的SHA-1。
- 别忘了同步到Google Play Console的游戏服务配置里,确保这个客户端ID关联上了你的游戏。
2. 别让游戏服务停留在测试状态
你关了Alpha/Beta的测试,但游戏服务的发布状态可能还卡在「测试」!这种情况下只有测试用户能登录,正式版用户直接被拒。
- 打开Google Play Console→游戏服务→你的游戏→「发布管理→发布状态」,把状态改成「正式发布」,走完审核流程。
- 这里要注意,游戏服务的审核和应用本身的审核是分开的,别漏了这一步!
3. 检查Unity插件的配置细节
Unity 2017.2对应的Google Play Games插件版本可能有点老,另外要确认配置没搞错:
- 初始化代码里别硬编码测试环境的配置,比如资源ID要填正式版的(从Google Play Console游戏服务里拿):
PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder() .RequestEmail() // 其他你需要的权限 .Build(); PlayGamesPlatform.InitializeInstance(config); PlayGamesPlatform.Activate(); - 建议把插件升级到和Unity 2017.2兼容的最新版本,旧插件可能存在正式发布后的兼容性bug。
4. 验证正式APK的签名是否正确
有时候打包手滑,用调试签名打了正式版APK,这就直接导致签名不匹配了。
- 用
apksigner工具验证APK的签名:apksigner verify --print-certs 你的正式版APK文件.apk - 看输出的SHA-1是不是和你在Google Cloud Console配置的发布签名SHA-1一致,不一致的话重新打包!
最后给个排查小技巧
如果还是找不到问题,可以临时开个内部测试,把同一个正式APK传上去,用内部测试用户登录试试:
- 如果能登录,说明是正式发布后的游戏服务配置问题;
- 如果还是不能,那肯定是签名或者Unity插件的配置出问题了。
你日志里的
[Play Games Plugin DLL] 03/21/18 13:04:57 +07:00 DEBUG: Starting Auth Transition. Op: SIGN_IN stat...其实就是登录启动后直接失败的提示,核心还是status 10对应的「签名/配置不匹配」或者「权限不足」问题。
内容的提问来源于stack exchange,提问作者Solid_Metal
相关产品推荐
相关产品推荐

