【问题标题】:GKTurnBasedMatch push notifications are very inconsistentGKTurnBasedMatch 推送通知非常不一致
【发布时间】:2013-12-16 17:05:27
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: iphone ios push-notification game-center gkturnbasedmatch


    【解决方案1】:

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

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

    【讨论】:

    • 我之前考虑过这个问题,它确实解释了我最初认为的一些奇怪行为。但是,尽管完全退出常规游戏中心并且没有使用任何其他游戏,但我仍然注意到一大堆不一致之处。事实上,即使应用程序正在运行,很多时候也没有收到通知。我已经在我的两台设备之间进行了很多次交易,但仍然看不到任何押韵或理由 - 有时两个设备会合作,有时只有一个,有时两者都没有。还有其他想法吗?谢谢!
    • 我注意到的一件事是,在从头开始启动应用程序后(即从 xcode 运行或从应用程序托盘中删除应用程序并再次运行),通知似乎总是在收到的第一个轮次通过)。换句话说,如果我要从托盘中删除应用程序并在我每次使用一台设备后重新启动它,它会(似乎)在每次进入时收到通知。在我看来,这似乎指向有关游戏中心身份验证的一些事情,但与游戏中心的所有其他通信都工作正常,所以我仍然像以往一样困惑......
    • 您无需退出游戏中心。事实上,如果您退出,您将不会收到推送通知。
    • 不不,我的意思是我退出了我的真实游戏中心帐户,以确保该帐户不会与我的沙盒帐户发生冲突。当然,沙盒帐户需要处于活动状态才能接收我正在寻找的通知。
    • 游戏中心邀请这几天不工作,我不知道游戏中心沙盒服务器是怎么回事。我希望你的问题是因为这个。这两周我在游戏中心遇到了很大的问题,我很不高兴
    【解决方案2】:

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

    【讨论】:

    • 你问了一个 7 个月大的问题。从那以后你有没有经历过,或者这些天你又开始经历了?因为我在 3 天前突然开始体验它,当时一切正常。
    • 这些天还在发生。任何关于它的参考从未在生产游戏中心发生过?
    • 这仍然发生在我身上。 stackoverflow.com/questions/34570404/…。从技术上讲,不再存在“沙盒”,所以我真的不知道这是一个沙盒问题。
    【解决方案3】:

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

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

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

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

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

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

    希望这是一个沙盒问题。

    【讨论】:

      猜你喜欢
      • 2018-12-05
      • 2020-01-02
      • 2015-07-09
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      • 2016-09-03
      • 2023-03-12
      • 2018-11-27
      相关资源
      最近更新 更多