Unity接入谷歌登录 踩坑总结

基本接入流程参考大佬的接入教程,感谢大佬!

导入谷歌登录插件包

插件包地址
导入后打包时会在Plugins-Android里下载超多依赖包,但是打包时候会报错,基本都是gradle的错误,依赖包重复。经测试甚至全部删除后再打包也能正常唤起谷歌登录界面,推荐设置

文件名问题

有几个文件后缀名有问题 改一下后缀名,其中Google-signin-support-1.0.4.aar文件改名后勾选一下安卓平台

无法唤起谷歌登录界面

如果打包后无法唤起谷歌登录界面,并且在log中看到类似如下错误

Caused by: java.lang.ClassNotFoundException: com.google.android.gms.common.api.PendingResult

尝试保留几个依赖包com.google.android.gams.play开头的依赖包

WebClientId

需要在谷歌云后台设置OAuth客户端ID,需要注意的是,即便要打包安卓APK,也不能仅创建一个安卓端的ID,至少要三个,俩安卓的,一个web的,其中web的客户端ID才是代码里填的那个!

两个安卓的ID创建时要填SHA1值,其中一个来自本地keystore文件,另一个来自谷歌开发者后台上传aab包后自动创建的

基础代码

    #region 谷歌登录
    string webClientId = "";
    GoogleSignInConfiguration configuration;

    public  void BindGoogle() // 绑定谷歌
    {
        UnityEngine.Debug.Log("<color=yellow><b> +++++++    绑定谷歌 </b></color>");
        if (configuration == null)
        {
            configuration = new GoogleSignInConfiguration
            {
                WebClientId = webClientId,
                RequestIdToken = true,
                RequestEmail = true,
            };
        }
        GoogleSignIn.Configuration = configuration;
        GoogleSignIn.Configuration.UseGameSignIn = false;
        GoogleSignIn.Configuration.RequestIdToken = true;
        GoogleSignIn.DefaultInstance.SignIn().ContinueWith(OnAuthenticationFinished); 
    }
    internal void OnAuthenticationFinished(Task<GoogleSignInUser> task)
    {
        if (task.IsFaulted)
        {
            using (IEnumerator<System.Exception> enumerator = task.Exception.InnerExceptions.GetEnumerator())
            {
                if (enumerator.MoveNext())
                {
                    GoogleSignIn.SignInException error = (GoogleSignIn.SignInException)enumerator.Current;
                    UnityEngine.Debug.Log("<color=yellow><b> +++++++   登录失败 错误状态: " + error.Status + "   错误信息: " + error.Message + "</b></color>");
                }
                else
                    UnityEngine.Debug.Log("<color=yellow><b> +++++++   登录失败 未知错误:" + task.Exception + "</b></color>");
            }
            configuration.UseGameSignIn = false;
        }
        else if (task.IsCanceled)
        {
            configuration.UseGameSignIn = false;
            UnityEngine.Debug.Log("<color=yellow><b> +++++++   登录失败 用户取消</b></color>");
        }
        else
        {
            UnityEngine.Debug.Log("<color=yellow><b> +++++++   登录成功 用户邮箱" + task.Result.Email + "</b></color>");
        }
    }

    #endregion

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity接入微信小游戏登录SDK需要进行以下步骤: 1. 下载微信小游戏登录SDK:首先,从微信开放平台下载微信小游戏登录SDK的Unity插件,该插件包含了与微信小游戏服务器通信所需的脚本和配置文件。 2. 导入SDK插件:打开Unity项目,在Assets菜单中选择“Import Package” -> “Custom Package”,选择刚下载的微信小游戏登录SDK插件进行导入。 3. 配置游戏参数:在Unity编辑器中,在“Project”视图下找到WXEntryMenu,并打开进行配置。在配置中,要填写自己的微信小游戏AppID和AppSecret等参数。 4. 创建登录按钮:在Unity场景中,创建一个按钮对象,并添加一个脚本用于处理微信小游戏登录逻辑。在该脚本的代码中,调用微信小游戏登录SDK的接口,实现登录功能。 5. 处理登录回调:微信小游戏登录SDK提供了登录结果回调函数,开发者需要在自己的脚本中进行处理。根据回调结果,可以获取到用户的openid、unionid等信息,进一步进行后续操作。 6. 测试登录功能:在Unity编辑器中,点击运行按钮,启动游戏。在游戏中点击登录按钮,会调起微信小游戏客户端进行登录登录成功后,可以获取到用户的登录信息,并进行相应的游戏逻辑处理。 以上就是Unity接入微信小游戏登录SDK的基本步骤。开发者按照这些步骤进行操作,即可实现微信小游戏的登录功能,并在游戏中使用微信登录

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值