Google Play游戏不允许用户join回合制匹配

我创build了一个回合制的比赛,然后继续邀请单个对手如下:

GPGMultiplayerConfig *config = [[GPGMultiplayerConfig alloc] init]; // We will automatically match with one other player config.invitedPlayerIds = @[self.opponent.googlePlayID]; config.minAutoMatchingPlayers = 0; config.maxAutoMatchingPlayers = 0; [GPGTurnBasedMatch createMatchWithConfig:config completionHandler:^(GPGTurnBasedMatch *match, NSError *error) { if (error) { completion(NO); return; } }]; 

在该装置放置第一步并且将下一个回合传递给我的对手装置之后,我的对手装置接收到推送通知以join比赛。 我join回应。 在这一点上,我self.match.userMatchStatus了这个受邀设备的self.match.userMatchStatus

 [self.match joinWithCompletionHandler:^(NSError *error) { if (error) { completion(NO); return; } }]; 

这不会给出错误。 在调用self.match.isMyTurn ,我回到了YES 。 调用self.match.userMatchStatus会给出被invited的状态。 没有joined 。 该文档(这是令人难以置信的差,顺便说一下),这个joinWithCompletionHandler:方法:

join玩家被邀请参加的回合制比赛。

即使在此后3秒内增加了一个调度时间延迟,为了给它一个机会,我发现它仍然被invited 。 调用其他方法,如takeTurnWithNextParticipantId:data:results:completionHandler:失败并显示完全未logging的错误:

错误域= com.google.GooglePlayGames代码= 3“操作无法完成(com.google.GooglePlayGames错误3.)”

以下是Google文档的链接:

https://developers.google.com/games/services/ios/api/interface_g_p_g_turn_based_match

我想你是传递玩家ID而不是参与者ID takeTurnWithNextParticipantId。 错误代码3(和http响应代码400)意味着传入的参数中的某些内容无效,在我的情况下,它是我设置错误的参与者标识。