繁体   English   中英

带有Unity的Google Play服务-登录无结果

[英]Google Play Services with Unity - Sign in results in nothing

因此,我最近一直在尝试将Google Play游戏服务添加到我的好友正在从事的项目中。

我认为我将从登录开始,因为这对于我们想要添加的其他任何东西(例如成就和排行榜)都是必需的。 无论如何,我已经以我的好友开发人员和我自己的开发人员电子邮件作为测试人员向Google Play商店发布了封闭的Alpha版本。 我已经设置了我希望的OAuth2客户端ID,SHA 1,AndroidManifest文件和其他游戏服务。

然后,我在Unity中加入了最新的Google Play游戏插件(0.9.50),并将资源和客户端ID设置到我们的项目中。 我当然有我的密钥,例如用于封闭Alpha测试的Signed APK。

然后,我在场景中设置了一个用于登录的按钮,并按如下所示设置了我的代码:

void Start ()
{
    PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder()
        .RequestEmail()
        .RequestServerAuthCode(false)
        .RequestIdToken()
        .Build();

    //DEBUGGING ONLY
    PlayGamesPlatform.DebugLogEnabled = true;

    PlayGamesPlatform.InitializeInstance(config);
    PlayGamesPlatform.Activate();

    // Does nothing either . . . .
   Social.Instance.Authenticate((bool success) => { SignInCallback(success); }, false);
}

public void SignIn()
{
    _signInNotification.text = "WARMER";

    if (!PlayGamesPlatform.Instance.localUser.authenticated)
    {
        _signInNotification.text = "SIGNING IN";
        Social.localUser.Authenticate((bool success) => { SignInCallback(success); });
    }
    else
    {
        PlayGamesPlatform.Instance.SignOut();

        _signInNotification.text = "OUT";
    }
}

private void SignInCallback(bool success)
{
    if (success)
    {
        Debug.Log("(Something) Signed in!");

        _signInNotification.text = "Signed In as : " + Social.localUser.userName;
    }
    else
    {
        Debug.Log("(Something) Sign-In Failed!");

        _signInNotification.text = "Sign-In Failed!";
    }
}[/code]

我有一些文本可以让我知道已访问或运行了代码的哪一部分。 登录按钮调用SignIn()函数,但仅显示文本“ WARMER”。 似乎从未调用Social.localUser.Authenticate()函数。

我尝试了多种解决方案,更改,变体等。但是,当我单击“登录”按钮时,绝对没有任何反应。 没有错误,没有警告,没有显示“登录失败”的文字,什么都没有。

不太确定我缺少什么,任何想法将不胜感激! :)

我在调试Google Play服务问题时认识到的一个问题是,由于登录提示不在应用程序内,因此弹出的错误来自单独的活动。 您可能会收到错误响应,但这不是来自您的程序。 因此,您可能需要禁用控制台中的所有过滤器才能看到所有错误(如果您使用的是Android Studio,则logcat在设置为“无过滤器”时,应该显示来自插入设备的所有响应)。

就我而言,该插件具有一个AndroidManifest文件(GooglePlayGames / Plugins / Android / GooglePlayGamesManifest.plugin文件夹),其中APP_ID的值前面带有空格。 我认为这是将值转换为字符串的旧解决方法,但是现在应用程序要求它是数字值,因此删除空格解决了我的问题。

希望这可以帮助!

要设置Google Play游戏服务,我们按照此处的文档进行操作并指导我们完成了所有必要步骤。 我们无法登录时发现,在测试应用程序时,您的OAuth 2.0客户端ID(在Google API控制台>凭据上)应使用您的上载证书中的SHA-1签名证书指纹密钥,以及何时该发布SHA-1密钥应来自App签名证书。 您可以在Google Play控制台>所有应用程序(选择正确的应用程序)>版本管理>应用程序签名中找到这两个证书。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM