Ios 虚假的游戏中心玩家断开消息

Ios 虚假的游戏中心玩家断开消息,ios,game-center,gamekit,Ios,Game Center,Gamekit,我正在完成一个支持4人游戏中心的游戏的更新,突然发现虚假的玩家断开连接消息出现了问题,这在以前的版本中是没有的。更奇怪的是,并非所有连接到比赛的设备都在接收信息。一台设备会认为播放器已断开连接,但仍有消息从(假定的)断开连接的播放器传递给其他播放器 这些消息是通过match:player:didChangeState:messages直接来自match实例的,因此我认为它不会出现在我的代码中,但它没有多大意义。游戏可以持续10分钟以上,没有任何问题,一旦出现一次错误的断开连接,其余的就会很快消失

我正在完成一个支持4人游戏中心的游戏的更新,突然发现虚假的玩家断开连接消息出现了问题,这在以前的版本中是没有的。更奇怪的是,并非所有连接到比赛的设备都在接收信息。一台设备会认为播放器已断开连接,但仍有消息从(假定的)断开连接的播放器传递给其他播放器

这些消息是通过match:player:didChangeState:messages直接来自match实例的,因此我认为它不会出现在我的代码中,但它没有多大意义。游戏可以持续10分钟以上,没有任何问题,一旦出现一次错误的断开连接,其余的就会很快消失

我用我能想到的每一个搜索词在网上搜索,看看其他人是否看到过这种行为,而且似乎它是独一无二的。它必须是我的代码中的一些东西,但我甚至想不出如何找到它的底部

任何帮助都将不胜感激,
Cameron

请确保将其称为:

    //Finalize
    [[GKMatchmaker sharedMatchmaker] finishMatchmakingForMatch:match];

在所有玩家连接之后。我遇到了这个问题,在我的情况下,它似乎已经停止了错误的断开连接。

对不起,这里不太清楚。我假设玩家的断开连接来自苹果的游戏中心服务器,所以我假设我的代码中没有生成这些消息的东西。正如我在最后一段中所说的,因为这似乎是一个独特的问题,所以我只能假设它是我代码中的某个东西。我只是不知道如何调试这个。我在游戏中心沙箱中看到了很多关于问题的帖子。这可能是沙箱的异常现象吗?似乎也不太可能。这不是一个很好的测试环境。您是否在代码中添加了大量日志记录?没有它(有时也有它!)很难追踪到通信定时相关的错误。我有大量的控制台日志记录,但这在这种情况下非常有用,因为消息直接来自GameKit。我已经通过对执行堆栈的调查证实了这一点。我将四个设备中的两个连接到电台,这样我可以同时看到至少两个控制台输出,并确认一个设备上的假播放器断开连接没有在另一个设备上注册。我认为在这一点上,我唯一的解决方案将是实现一个辅助机制来验证玩家是否真的放弃了。那里也没有解决方案。播放机断开消息似乎表明受影响播放机和接收设备之间的通信确实中断。我想我会向苹果公司提交一份TSI,看看他们是否能提供任何关于导致这种行为的原因的见解。我也有同样的自发断开连接。打电话给finishMatchmakingForMatch对我的处境毫无帮助。