在我的应用中,我可以看到使用iTunesConnect创建的Leaderboards
和Achievements
的数据。我可以毫无问题地使用GKTurnBasedMatchmakerViewController
。但是,如果我使用GKMatchmakerViewController
,在选择了一位朋友邀请之后,GKMatchmakerViewController
会立即返回“失败”#34;指示(见图)。
这不是全部。如果我使用另一个bundle id(已经在AppStore上的那个)来测试,那么GKMatchmakerViewController将在这个应用程序上运行。
我还尝试创建新的个人资料/包ID,应用ID等。但问题仍然存在。
有什么建议吗?
修改:失败时调用了connectionWithPlayerFailed
和didFailWithError
方法。
编辑2:
此消息显示在设备日志中:
无法使用名称bootstrap_look_up端口 com.apple.GameCenterUI.GameCenterMatchmakerExtension.gsEvents:未知 错误代码(1102)无法设置 com.apple.GameCenterUI.GameCenterMatchmakerExtension作为键盘焦点
编辑3:"立即播放" (自动匹配)工作正常。
编辑:使用的代码
- (void)findMatchWithMinPlayers:(int)minPlayers maxPlayers:(int)maxPlayers
viewController:(UIViewController *)viewController
delegate:(id<GameKitHelperDelegate>)delegate {
if (!_enableGameCenter) return;
MyNSLogSys;
_matchStarted = NO;
self.match = nil;
_delegate = delegate;
// [viewController dismissViewControllerAnimated:NO completion:nil];
GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.minPlayers = minPlayers;
request.maxPlayers = maxPlayers;
GKMatchmakerViewController *mmvc =
[[GKMatchmakerViewController alloc] initWithMatchRequest:request];
mmvc.matchmakerDelegate = self;
[viewController presentViewController:mmvc animated:YES completion:nil];
}
// The user has cancelled matchmaking
- (void)matchmakerViewControllerWasCancelled:(GKMatchmakerViewController *)viewController {
[viewController dismissViewControllerAnimated:YES completion:nil];
}
// Matchmaking has failed with an error
- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFailWithError:(NSError *)error {
[viewController dismissViewControllerAnimated:YES completion:nil];
NSLog(@"Error finding match: %@", error.localizedDescription);
}
// A peer-to-peer match has been found, the game should start
- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindMatch:(GKMatch *)match {
[viewController dismissViewControllerAnimated:YES completion:nil];
self.match = match;
match.delegate = self;
if (!_matchStarted && match.expectedPlayerCount == 0) {
NSLog(@"Ready to start match!");
}
}
答案 0 :(得分:0)
我之前见过这个。解决这个问题的方法是通过游戏中心成为朋友。在那之后,邀请应该工作。
此外,在iOS9中,不再有沙箱。因此,如果您尝试使用应用程序的调试版本进行连接,则通知将打开游戏中心和应用程序商店,而不是直接转到您的应用程序。您可以通过在发布模式而不是调试模式下运行来解决这个问题。