游戏中心认证错误

4

我正在尝试调用游戏中心的认证方法,但是没有认证屏幕出现,回调返回一个错误:“请求的操作已被取消”。

代码如下:

[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error)
     {
        NSDictionary *userInfo = nil;
        if (error == nil) {

            NSLog(@"Game Center successfully authenticated");
        }
        else {
            userInfo = [NSDictionary dictionaryWithObject:error forKey:@"NSError"];
        }
        [[NSNotificationCenter defaultCenter] postNotificationName:Notification
                                                            object:self
                                                          userInfo:userInfo];

    }];

有什么想法会导致这个问题吗?
2个回答

17
在iOS 4.2中,当用户取消登录Game Center时,如果连续尝试3次仍未成功,则会返回该错误。您可以通过使用Game Center应用程序进行登录,然后再尝试您的应用程序来解决此错误,这样您应该可以在应用程序中看到来自Game Center的欢迎消息。

是的,我也发现了这一点。 - Idan
顺便说一句,我注意到“欢迎回来”消息弹出,无论我是否调用任何游戏中心函数。 - Idan
这是内置于游戏中心的功能吗?当我的应用程序正在使用或通过iTunes Connect配置为使用游戏中心时,然后在我将应用程序返回到前台时弹出该警报? - Idan
5
有些人可能遇到了在iOS 7.0中无法进入游戏中心沙盒模式的问题。如果您在取消游戏中心登录3次后被锁定,请前往“设置”->“通用”->“重置”->“重置所有设置”。这将重置所有设置,但您也将被允许重新进入沙盒模式。我希望我早点看到这个。 - Theo Bendixson

-1
在测试了特定设备上的游戏中心是否可用后,您应该这样做:
GKLocalPlayer *localplayer = [GKLocalPlayer localPlayer];
[localplayer authenticateWithCompletionHandler:^(NSError *error) {
    if (error) {
        //DISABLE GAME CENTER FEATURES / SINGLEPLAYER
    }
    else {
        //ENABLE GAME CENTER FEATURES / MULTIPLAYER
    }
}];

我当然先测试了它,但我看不出你的代码与我的有什么不同。 - Idan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接