但是,在非常少的时间内(实际上,我自己无法重现它),永远不会调用身份验证处理程序.几分钟后等待.游戏中心欢迎横幅也从不显示,因此不仅仅是我们的处理程序从未被调用过,但似乎确实没有身份验证状态.
到目前为止,我们实施了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身份验证处理程序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)