我正在通过游戏中心开发一个多人游戏,我有一个问题。当我尝试邀请我的一个朋友时,我得到了失败的状态。我试过用模拟器和iphone,也试过用两部iphone,但总是出现同样的问题。
我搜索了我的问题的解决方案,发现有很多开发人员都有这个问题。我使用的是iOS 6,而应用程序还在生产中,所以它还在沙箱中。
我正在使用相同的代码,就像Ray Wenderlich - CatRace上的一样(有太多的人在写这个问题,但没有人发布解决方案。
有人知道如何解决这个问题吗?
发布于 2013-01-18 20:51:01
请检查以下内容:
1>在本地播放器通过身份验证后设置inviteHandler。
2>您尝试邀请的玩家在其帐户设置中确实允许游戏邀请。如果您有两个测试帐户,您可以忘记您不允许这两个帐户。在这种情况下,invite的推送通知甚至不会发送给其他玩家。
3>请勿使用同一游戏中心帐号进行测试。
发布于 2021-03-25 09:29:50
你必须发送一个GK事件来表示玩家(你)结束了他们的回合,然后GameCenter才会向你邀请的玩家发送推送通知邀请。
因此,每个玩家的第一轮事件都应该发送一个类似于“Player1”:“matchData”的联合数组。
这将强制GameCenter向每个玩家发送邀请。
然后,一旦你确认每个玩家都发送了一个“加入”的GK事件,你就可以开始游戏了。
https://developer.apple.com/documentation/gamekit/gkturnbasedmatch/1520765-endturn
func endTurn(withNextParticipants nextParticipants: [GKTurnBasedParticipant],
turnTimeout timeout: TimeInterval,
match matchData: Data,
completionHandler: ((Error?) -> Void)? = nil)
nextParticipants是被邀请的玩家,而matchData是一个类似于使用NSKeyArchiver的“Joined”的NSArray。调用此函数后,GameCenter会发送推流通知,邀请播放器。
https://stackoverflow.com/questions/14308036
复制相似问题