使用Game Center验证GKLocalPlayer

时间:2010-09-18 17:34:24

标签: ios iphone cocoa-touch gamekit

我正在尝试使用Game Center验证GKLocalPlayer。但是,Apple提供的代码

- (void) authenticateLocalPlayer
{
    [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error) {
         if (error == nil)
         {
              // Insert code here to handle a successful authentication.
              NSLog(@"Logged in.");
         }
         else
         {
             // Your application can process the error parameter to report the error to the player.
             NSLog(@"%@", [error description]);
         }
     }];
}

对我来说似乎没有办法。我总是收到警告“无法连接到Game Center服务器”。选择“重试”或“取消”。这两个NSLog语句都没有执行,所以我猜想甚至没有触发completionHandler。

如果我按重试,我会收到以下错误:

Error Domain=GKErrorDomain Code=7 "The requested operation could not be completed because local player is already authenticating." UserInfo=0x8915f80 {NSLocalizedDescription=The requested operation could not be completed because local player is already authenticating.}

任何人都知道出了什么问题?

3 个答案:

答案 0 :(得分:7)

我发现连接到Game Center时遇到的一个问题是您的日期可能在设备上出错了。检查您的日期是否是实际当前日期。不知何故,Game Center不允许来自日期不正确的设备的连接。

答案 1 :(得分:1)

您可以尝试将模拟器完全重置为默认值。 它对我有用,一旦重置,我的iDevice再次工作。

依赖于您无法登录的ios版本,然后将模拟器设置为前景并转到左上角。 iOS模拟器 - >重置内容和设置 - >单击“重置”按钮。

我希望这会有所帮助。

答案 2 :(得分:0)

这里完全相同的问题。昨天早上,我为我工作了大约五分之一。今天我甚至无法登录Game Center沙箱(使用您发布的相同代码)。

编辑:我将部署目标更改为3.0“项目 - 编辑活动目标 - iOS部署目标”

然后我能够为我的活动可执行文件选择4.1模拟器,我可以登录,一切正常。 4.2我猜的沙箱有点......