7

我正在测试两个设备之间的回合制游戏。据我了解,[GKTurnBasedMatch endTurnWithNextParticipants:]例如,发送带有 的回合应该会自动向对手推送游戏中心通知。有时,这会像预期的那样工作:轮到发送并立即在另一台设备上显示横幅通知。一切都很好。

令我困惑的是,其他时候,即使回合本身已正确发送(我可以判断,因为当对手刷新比赛时,比赛是最新的),没有推送通知进来

我的理解有什么漏洞吗?如果我理解正确,不一致的通知应该与我的代码无关,因为这里的问题不是我如何处理通知,而是根本没有通知。换句话说,[handleTurnEventForMatch:](一种GKTurnBasedEventHandlerDelegate方法)与它没有任何关系(我不认为),因为如果没有收到通知,那么无论如何都不会调用它。

所以,我只是想知道是否有人对此有任何经验。这是否可能是由于我的代码中的某些内容?或者,游戏中心沙盒是否有可能对不一致负责,而我对此无能为力?

任何想法或想法将不胜感激。

4

3 回答 3

4

这是 GameCenter 的沙盒模式的问题。为了让您的设备进入沙盒模式,您必须打开/运行您的应用程序并验证游戏中心。如果您说,在您的游戏打开后打开另一个(已发布)游戏,它将离开沙盒模式并返回到常规游戏中心模式。

即使您的游戏在后台运行,只要它是最后一个启用游戏中心的游戏,您就应该正常收到推送通知。但是如果你打开游戏,然后杀死进程,你将不再处于沙盒模式,也不会收到推送通知。

于 2013-04-24T22:28:38.963 回答
2

对于那些遇到类似问题的人:这原来是一个游戏中心沙盒问题。它与我的代码无关,并且在 App Store 版本中一切正常。因此,请仔细阅读此处的评论,并确保没有其他因素影响您遇到的任何问题......但要知道,您可能只是遇到了一些您无法控制的 Game Center 沙盒问题!

于 2013-12-06T17:16:50.783 回答
0

我也面临同样的问题。我的游戏停止接收来自 Game Center 的回合事件和回合通知,我完成了游戏并正在测试,但本周,问题开始发生。它就像一个魅力,但突然之间实例开始在几天内没有收到转弯事件。

我正在使用 iOS7 SDK 并以 iOS7 为目标(回合事件处理与以前的 iOS 版本不同,我需要在即将到来的游戏功能中进行交流,这就是我使用 iOS7 的原因)。

然后我做了一个测试应用程序来检查它是否与 iOS6 和以前的 SDK 相同,但没有帮助,它是相同的。所以不要浪费你的时间来升级你的代码到iOS7,希望它能工作,问题就在那里。我也尝试了很多东西,比如重置设备和设置,使用新用户等。

我还通过下载源代码尝试了 Ray Wenderlich 的 iOS 5 回合制游戏教程,但它也不起作用。

问题是,通常当我启动游戏时,游戏会收到回合事件,但在几个回合之后,它就停止了,当它停止接收时,就像永远停止一样。如果我重新加载比赛,我可以获得更新的比赛并且它的数据也会更新,所以我可以转弯。这意味着比赛在游戏中心更新。因此,要么 Game Center 没有将数据推送给用户(这可能是因为当游戏处于后台时用户无法接收来自 Game Center 的通知),或者 GameKit 没有向处理程序触发事件。

我不知道它为什么会发生,或者为什么会开始发生,但我不能像这样发布我的游戏,希望它能在沙盒之外运行。我将尝试更多的事情(比如尝试转提醒 iOS7,看看他们是否将其推送给用户),然后我会询问 Apple 的支持团队。我打算做的另一件事是将我的测试应用程序放到 App Store 中,看看它是否可以在沙盒之外运行。

希望这是一个沙盒问题。

于 2013-12-07T19:35:32.123 回答