我正在测试两台设备之间的回合制游戏。据我了解,例如,发送带有 [GKTurnBasedMatch endTurnWithNextParticipants:]
的回合应该会自动将游戏中心通知推送给对手。有时,这会像预期的那样工作:轮到发送后,另一台设备上会立即显示一条横幅通知。一切顺利。
让我感到困惑的是,其他时候,即使回合本身发送正确(我可以判断,因为当对手刷新比赛时,比赛是最新的),没有推送通知在。
我的理解有没有漏洞?如果我理解正确,不一致的通知应该与我的代码没有任何关系,因为这里的问题不是我如何处理通知,而是根本没有通知。换句话说,[handleTurnEventForMatch:]
(GKTurnBasedEventHandlerDelegate
方法)与它没有任何关系(我不认为),因为如果没有收到通知,它永远不会被调用。
所以,我只是想知道是否有人对此有任何经验。这可能是由于我的代码中的某些内容造成的吗?或者,是否有可能是 Game Center 沙盒造成了不一致,而我对此无能为力?
任何想法或想法将不胜感激。
最佳答案
这是 GameCenter 沙盒模式的问题。为了让您的设备进入沙盒模式,您必须打开/运行您的应用程序并验证游戏中心。如果您说,在您的游戏打开后打开一个不同的(已发布的)游戏,它将离开沙盒模式并返回到常规游戏中心模式。
即使您的游戏在后台运行,只要它是最后打开的启用游戏中心的游戏,您就应该正常收到推送通知。但是如果你打开游戏,然后杀死进程,你将不再处于沙盒模式,也不会收到推送通知。
关于iphone - GKTurnBasedMatch 推送通知非常不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16199528/