HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 有时永远不会调用Game Center身份验证处理程序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我们的iOS游戏中,我们使用Game Center来识别玩家并使用我们自己的服务器跨设备同步他们的数据.因为游戏中心识别玩家,我们需要知道他们是否经过身份验证,或者他们是否更改了身份验证等.我们有一个标题屏幕显示“正在初始化游戏中心…”,直到认证调用返回,并且只有一次我们知道他们被认证为谁(如果有人)我们进入游戏.

但是,在非常少的时间内(实际上,我自己无法重现它),永远不会调用身份验证处理程序.几分钟后等待.游戏中心欢迎横幅也从不显示,因此不仅仅是我们的处理程序从未被调用过,但似乎确实没有身份验证状态.

到目前为止,我们实施了30秒的超时,如果我们没有从Game Center听到任何消息,我们认为身份验证状态没有改变,我们使用您保存的数据.那30秒的超时并不理想,所以我想知道当GC没有响应时是否有任何押韵或理由.

以下是从我们的App Delegate应用程序调用代码:didFinishLaunchingWithOptions:method:

PlayerModel *playerModel = [PlayerModel sharedPlayerModel];
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
if ([localPlayer respondsToSELEctor:@SELEctor(setAuthenticateHandler:)])
{
    localPlayer.authenticateHandler = ^(UIViewController *gkViewController,NSError *error)
    {
        if (localPlayer.authenticated)
        {
            [playerModel loadFromGameCenter];
            playerModel.hasGCStatus = TRUE;
            [playerModel sync];
        }
        else if (gkViewController)
        {
            [viewController presentViewController:gkViewController animated:TRUE completion:nil];
        }
        else
        {
            NSLog(@"Could not authenticate with Game Center");
            [playerModel unloadFromGameCenter];
            playerModel.hasGCStatus = TRUE;
            [playerModel sync];
        }
    };
}
else
{
    [localPlayer authenticateWithCompletionHandler:^(NSError *error) {
        if (localPlayer.authenticated)
        {
            [playerModel loadFromGameCenter];
            playerModel.hasGCStatus = TRUE;
            [playerModel sync];
        }
        else
        {
            NSLog(@"Could not authenticate with Game Center");
            [playerModel unloadFromGameCenter];
            playerModel.hasGCStatus = TRUE;
            [playerModel sync];
        }
    }];
}

解决方法

我在沙盒服务器上的一个游戏测试期间有过这方面的经验,有时候确实没有通知或认证处理程序调用,然后它会在半小时后工作.

我们总结说这是由于Apple的服务器端,因为我们从未在Game Center沙箱之外遇到过这个问题.

对不起,解释有点模糊,没有什么具体的,你可以做.但这不是你的代码.它最终是你无法控制的.

大佬总结

以上是大佬教程为你收集整理的ios – 有时永远不会调用Game Center身份验证处理程序全部内容,希望文章能够帮你解决ios – 有时永远不会调用Game Center身份验证处理程序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。