我在这里关注教程。 Multiplayer Game iOS
我正在使用上面的匹配制作教程中的以下代码
GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease];
request.minPlayers = minPlayers;
request.maxPlayers = maxPlayers;
request.playersToInvite = pendingPlayersToInvite;
GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithMatchRequest:request] autorelease];
mmvc.matchmakerDelegate = self;
[presentingViewController presentModalViewController:mmvc animated:YES];
当我使用“立即播放”选项搜索其他玩家时,GKMatchmakerViewController
会立即将matchmakerViewController:didFailWithError
委托给以下错误。
Error Domain=GKErrorDomain Code=3 "The requested operation could not be
completed due to an error communicating with the server." UserInfo=0x2081d8d0
{GKServerStatusCode=5001, NSUnderlyingError=0x2086c560 "The operation couldn’t be
completed. (GKServerErrorDomain error 5001.)", NSLocalizedDescription=The requested
operation could not be completed due to an error communicating with the server.}
我无法弄清楚为什么会这样。之前相同的代码能够搜索并找到合适的玩家但在使用
获取玩家别名时失败[GKPlayer loadPlayersForIdentifiers:match.playerIDs withCompletionHandler:^(NSArray *players, NSError *error)
“无法与服务器通信”错误。
然而,代码在模拟器上运行良好。
答案 0 :(得分:3)
我也有
错误域= GKErrorDomain代码= 3“请求的操作不能 由于与服务器通信时出错而完成。“ UserInfo = 0x17007e4c0 {GKServerStatusCode = 5001, NSLocalizedDescription =无法完成请求的操作 由于与服务器通信时出错。, NSUnderlyingError = 0x170050140“操作无法完成。 (GKServerErrorDomain错误5001。)
我认为这是sandbox.gc.apple.com问题.. 这个问题是一年,但苹果有时会出现这个问题
希望苹果很快解决这个问题。我尝试使用iPod touch而且
错误域= NSURLErrorDomain代码= -1001“请求超时。” 的UserInfo = 0x176bec90 {NSErrorFailingURLKey = http://sandbox.gc.apple.com/WebObjects/GKInit.woa/wa/getBag?ix=1, NSErrorFailingURLStringKey = http://sandbox.gc.apple.com/WebObjects/GKInit.woa/wa/getBag?ix=1, NSLocalizedDescription =请求超时。}
答案 1 :(得分:1)
使用reportScoreWithCompletionHandler发送新的高分时遇到同样的问题(GKServerStatusCode = 5001)。
在沙盒模式下一切正常,但AppStore版本在启用了沙盒模式的所有设备上都存在此问题(iOS 8.2 / 8.3)。但我可以在排行榜中看到其他用户的数据。看起来这实际上是苹果方面的错误。