更新到iOS 8.3和swift 1.2后,endTurnWithNextParticipants不会触发receivedTurnEventForMatch

Pin*_*ton 9 game-center swift

自从更新到iOS8.3后,是否有人注意到基于回合制的匹配通知有任何变化?在我的应用程序中,当我调用endTurnWithNextParticipants时,在升级之前,这导致向对手发送通知,这将触发在他们的设备上调用receivedTurnEventForMatch但不再是这种情况.当对手终止应用程序并重新启动它时,他们可以看到轮到他们,所以游戏中心的比赛按参与顺序正确更新,但这似乎不再动态生效.

别人都看到了吗?我希望这只是游戏中心沙盒环境中的暂时故障.

我已经向苹果提出了一个错误报告,看看它是否真的是一个错误,或者iOS8.3中是否存在一些我们需要了解的无证行为变化.

app*_*ted 3

更新: \nApple 已对错误报告做出回应:

\n\n
\n

请使用 iOS 8.4 beta 4(内部版本:12H4125a)验证此问题,并使用您的结果更新http://bugreport.apple.com/上的错误报告。

\n\n

iOS 8.4 beta 4(内部版本:12H4125a)\n https://developer.apple.com/ios/download/发布时间:2015 年 6 月 9 日

\n
\n\n

不幸的是,我无法在我的设备上安装 iOS 8.4 beta 4,并且无法告诉您它现在是否已修复。如果大家有这个机会,请分享。

\n\n
\n\n

我已向 Apple 提交了有关此问题的错误报告,并在他们做出回应后在此发布更新。

\n\n

我的回合制游戏有这个解决方法。看起来很糟糕,但它又可以工作了 \xe2\x80\x93 也许对你有帮助。

\n\n
- (void)sendGameStateWith:(NSMutableDictionary *)data\n{\n    if (self.match) {\n        NSData *matchdata = [NSKeyedArchiver archivedDataWithRootObject:data];\n\n        GKTurnBasedParticipant *opponent = [self.match.participants objectAtIndex:0];\n        GKTurnBasedParticipant *localPlayer = [self.match.participants objectAtIndex:1];\n        if ([self.localPlayer.playerID isEqualToString:opponent.playerID]) {\n            opponent = [self.match.participants objectAtIndex:1];\n            localPlayer = [self.match.participants objectAtIndex:0];\n        }\n\n        // HINT: Remove this workaround when Apple has fixed it. \n        [self.match saveCurrentTurnWithMatchData:matchdata completionHandler:^(NSError *error) {\n            if (error) {\n                NSLog(@"Error on saveCurrentTurnWithMatchData");\n                [self sendGameStateWith:data];\n\n            } else {\n                [self.match endTurnWithNextParticipants:[NSArray arrayWithObjects:opponent, localPlayer, nil] turnTimeout:turnTimeout matchData:matchdata completionHandler:^(NSError *error) {\n                    if (error) {\n                        NSLog(@"Error: Send Game Center state");\n                    } else {\n                        NSLog(@"Sent Game Center state");\n                    }\n                }];\n            }\n        }];\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n