Game Center 沙盒中缺少邀请

Posted

技术标签:

【中文标题】Game Center 沙盒中缺少邀请【英文标题】:Missing Invitations in Game Center Sandbox 【发布时间】:2013-02-06 04:05:28 【问题描述】:

我在使用 Game Center 时遇到了最奇怪的行为。

我正在与GKTurnBasedMatch 和朋友进行回合制比赛。本地播放器的身份验证完美运行。使用GKTurnBasedMatch 类方法loadMatchesWithCompletionHandler: 似乎明智地返回GKTurnBasedMatch 对象。为了发起新的比赛并邀请 Game Center 好友,我使用标准的GKTurnBasedMatchmakerViewController

当我使用GKTurnBasedMatchmakerViewController 创建匹配项时,当showExistingMatches 属性为YES 时,它们会显示在那里,供游戏创建者使用。

但是,如果我使用GKTurnBasedMatchmakerViewController 邀请其他玩家,接收玩家永远不会收到邀请。没有 Game Center 推送通知,也没有(除了一次或两次,偶尔)GKTurnBasedMatchmakerViewController 中带有“已邀请”标题的游戏。

奇怪的是,如果发起用户随后通过邀请结束他们创建的游戏,该玩家将收到“游戏结束”游戏中心通知。

使用loadMatchesWithCompletionHandler:,返回的matches 对邀请玩家有意义(正确participants 中的playerID 值,正确GKTurnBasedParticipantStatusparticipants 的值),但什么都没有显示为被邀请的玩家。

我在使用两台不同的设备,两台设备肯定都登录到了 Game Center 的沙盒模式,并且一切都在 iTunes Connect 等中设置好了。两个 Game Center 帐户都设置为接受邀请。

有人见过这样的吗?

【问题讨论】:

你订阅GKTurnBasedEventHandlerDelegate了吗?我不确定这是否是您的问题,因为我认为委托消息是从 GameCenter 应用程序本身发起的。只是另一个需要注意的边缘案例。 好建议。我的问题一直是在处理任何事情之前。游戏中心本身的推送通知没有出现,这很奇怪。我想我已经解决了这个问题(见答案)。现在的工作是确保他们来时得到GKTurnBasedEventHandlerDelegate 和其他人的妥善处理。 【参考方案1】:

可能的解决方案:当邀请者迈出第一步并发送消息 endTurnWithNextParticipants:turnTimeout:matchData:completionHandler: 时,我没有在第一个参数中发送正确的参与者,因此轮到被邀请者的位置从未设置。

【讨论】:

以上是关于Game Center 沙盒中缺少邀请的主要内容,如果未能解决你的问题,请参考以下文章

从未收到 Instagram 沙盒用户邀请

Game Center 分数同步是不是适用于沙盒帐户?

缺少 PayPal 沙盒 IPN 历史记录

无法在 PayPal 沙盒中支付?

沙盒中未触发 Paypal webhook 事件

自适应链式支付:在沙盒中测试的必要凭证是啥?