Unity 谷歌登录 Android + iOS

  金牌会员 | 2024-9-5 20:07:19 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 779|帖子 779|积分 2337

准备官方插件

https://github.com/googlesamples/google-signin-unity
Android


  • 需要web_clientId
  • 需要 google-services.json (应该是接Firebase需要)(谷歌官网下载的)


代码部门:

  1.          if (GoogleSignIn.Configuration == null)
  2.          {
  3.              GoogleSignIn.Configuration = new GoogleSignInConfiguration()
  4.              {
  5.                  WebClientId = //写你app的web_client_id,
  6.                  UseGameSignIn = false,
  7.                  RequestIdToken = true,
  8.                  RequestEmail = true
  9.              };
  10.          }
  11.          try
  12.          {
  13.              var user = await GoogleSignIn.DefaultInstance.SignIn();
  14.              //user有你需要的用户的数据
  15.          }
复制代码
iOS

开辟设备:window
发布设备:Mac
C#登录代码:同Android
unity打包准备


  • 需要GoogleService-Info.plist(谷歌官网下载的)文件,确保内里有CLIENT_ID

  • 在Unity的打包后处理OnPreprocessBuild里,需要对info.plist文件进行修改,代码如下:

  1.     // 增加info.plist文件内容
  2.     var plistPath = Path.Combine(pathToBuiltProject, "Info.plist");
  3.     var plist = new PlistDocument();
  4.     plist.ReadFromFile(plistPath);
  5.         plist.root.SetString("GIDClientID", /*GoogleService-Info.plist里的CLIENT_ID*/);
  6.     // 下面步骤增加需要是为了让iOS允许第三方登录,不然会报错
  7.     PlistElementArray urlTypes = null;
  8.     if (plist.root.values.ContainsKey("CFBundleURLTypes"))
  9.     {
  10.         try
  11.         {
  12.             urlTypes = plist.root.values["CFBundleURLTypes"] as PlistElementArray;
  13.         }
  14.         catch (Exception e)
  15.         {
  16.             Debug.LogWarning(string.Format("error,Could not obtain CFBundleURLTypes PlistElementArray: {0}", e.Message));
  17.         }
  18.     }
  19.     if (urlTypes == null)
  20.     {
  21.         urlTypes = plist.root.CreateArray("CFBundleURLTypes");
  22.     }
  23.     PlistElementDict dic = urlTypes.AddDict();
  24.     dic.SetString("CFBundleURLName","google-sign-in");
  25.     PlistElementArray schemes = dic.CreateArray("CFBundleURLSchemes");
  26.     /// 这里加的是GoogleService-Info.plist里的CLIENT_ID的倒转
  27.     schemes.AddString("com.googleusercontent.apps.1xxxxxxxxxxxxx4-exxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxg");
  28.     plist.WriteToFile(plistPath);
复制代码
MAC电脑内配置

【从window打包xcode项目到Mac需要经过一步cocopod的配置过程,此过程是利用cocopod来对谷歌插件依赖的管理,不然项目build不通过, 步骤如下:】
(注意以下步骤是在Mac电脑上进行的)

  • 确保你的MAC电脑安装了Cocopod
  • 打开终端,输入cd 你的项目根目次
  • 输入pod install

  • 上述步骤完成后,会多一个.workspace的文件,通过点击这个文件打开项目,不要通过点击 .xcodeproj打开。此时你会看到xcode两个文件夹,一个是你的项目,一个是Pod
以上完成后,就可以拉起iOS的谷歌登录

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表