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
对邀请玩家有意义(正确participant
s 中的playerID
值,正确GKTurnBasedParticipantStatus
上participant
s 的值),但什么都没有显示为被邀请的玩家。
我在使用两台不同的设备,两台设备肯定都登录到了 Game Center 的沙盒模式,并且一切都在 iTunes Connect 等中设置好了。两个 Game Center 帐户都设置为接受邀请。
有人见过这样的吗?
【问题讨论】:
你订阅GKTurnBasedEventHandlerDelegate
了吗?我不确定这是否是您的问题,因为我认为委托消息是从 GameCenter 应用程序本身发起的。只是另一个需要注意的边缘案例。
好建议。我的问题一直是在处理任何事情之前。游戏中心本身的推送通知没有出现,这很奇怪。我想我已经解决了这个问题(见答案)。现在的工作是确保他们来时得到GKTurnBasedEventHandlerDelegate
和其他人的妥善处理。
【参考方案1】:
可能的解决方案:当邀请者迈出第一步并发送消息 endTurnWithNextParticipants:turnTimeout:matchData:completionHandler:
时,我没有在第一个参数中发送正确的参与者,因此轮到被邀请者的位置从未设置。
【讨论】:
以上是关于Game Center 沙盒中缺少邀请的主要内容,如果未能解决你的问题,请参考以下文章