我正在与GameCenter开发游戏,我有几个测试人员在AdHoc(Beta)发行版中使用它,因此他们在我们准备上线时使用Sandbox进行测试。
我遇到了与GameCenter不可预测的断开连接。例如,当使用GKLeaderboard.loadScoresWithCompletionHandler
加载排行榜得分时,它会返回NSError
,表示该播放器未经过身份验证(错误代码#6
,即使他在开始时已通过身份验证会议和以前的同类请求已成功)。有时这甚至发生在游戏结束时,在成功完成GKTurnBasedMatch
之后,当我试图向排行榜报告分数时。
我注意到的一些事情:
setAuthenticateHandler
块未被调用,GKPlayerAuthenticationDidChangeNotificationName
块也未被发布。我的第一个出现问题的迹象就是GameCenter请求因错误而失败。以上让我感觉感觉,因为这是一个问题,沙盒简单地不可靠(例如,它在周一过载)。但是,我不能冒这种实际应用程序的经验。
所以,我的问题是2部分:
[[GKPlayer localPlayer] setAuthenticateHandler:...]
,但似乎没有重新验证用户。答案 0 :(得分:0)
我们面临着类似的问题。一个原因可能是,GameCenter似乎在主线程上运行了一些保持活跃的消息传递。一旦您的代码即将阻止,您可能会断开连接。检查你的线程。
您可能还会在Apple开发者论坛中考虑这个主题: