让GameCenter邀请朋友工作(iOS9?)
我无法让GameCenter邀请朋友工作。 比赛制造者视图控制器很快显示被邀请的玩家和它下面的一个小文本“失败”。 也许我select了错误的时间来学习GameCenter,因为不less人报告iOS9的困难。 但也许有一个解决scheme的地方。
基本:
- iTunesConnect应用程序logging存在,应用程序不公开,GameCenter已启用,已创build一个排行榜,已创build两个沙箱用户(不同于我的主苹果ID)
- 该应用程序有一个视图控制器,现在应该处理所有GameCenter的东西
- 在
viewDidLoad
,玩家身份validation通过将一个块分配给[GKLocalPlayer localPlayer].authenticateHandler
。 在块中显示传入的视图控制器(如果有的话)。 这工作。 - 视图控制器被设置为
GKGameCenterControllerDelegate
,它的工作,“didFinish”调用收到,我在这里closuresGameCenter视图控制器。 - 在authenticateHandler块中,当播放器被authentication时,我使用
[[GKLocalPlayer localPlayer] registerListener:...];
将视图控制器设置为侦听器[[GKLocalPlayer localPlayer] registerListener:...];
。 所有GKLocalPlayerListener
方法的方法存根都是通过日志调用实现的。 - 当点击某个button时,我创build一个
GKMatchRequest
和GKMatchmakerViewController
,将我的视图控制器设置为媒人委托,并呈现媒人视图控制器。 再次,所有委托方法都通过日志调用来实现。 - 我可以运行应用程序,在媒人视图控制器中点击“邀请朋友”,并按照屏幕,直到我点击“发送”button。 然后被邀请的玩家被显示在右边的插槽上,稍后显示“失败”,再次显示“自动匹配”。
- 没有播放器侦听器方法被调用。
问题:
- 我是否需要启用推送通知才能邀请朋友工作? (如果是的话,这是在哪里logging?)
- 是否有可能在模拟器/模拟器或设备/模拟器或只有设备/设备之间testing邀请朋友?
- 从设备的GameKit日志中,“没有对等的注册”是什么意思? (见下文)
其他资源:
- 游戏中心多人朋友在IOS 9中被破解了吗? (OCT / 2015)
- 如何解决游戏中心的邀请朋友? (2013)
- http://www.raywenderlich.com/60980/game-center-tutorial-how-to-make-a-simple-multiplayer-game-with-sprite-kit-part-1(CatRace – March / 2014)
- 游戏中心邀请立即失败 (2015年10月)
GameKit日志:
我打开了iPhone上的设置的GameCenter日志logging,并导出日志。 引起我注意的第一件事就是“没有注册同行(…)”:
<NSHTTPURLResponse: 0x167a2cc0> { URL: https://service.gc.apple.com/WebObjects/GKInvitationService.woa/wa/initiate } { status code: 200, headers { ... } ... status: (200) no error header: <CFBasicHash 0x165e6480 [0x3b6633e8]>{type = immutable dict, count = 10, entries => ... body: <CFBasicHash 0x17811ad0 [0x3b6633e8]>{type = mutable dict, count = 4, entries => ... 3 : <CFString 0x38bc0f78 [0x3b6633e8]>{contents = "message"} = <CFString 0x165c0610 [0x3b6633e8]> {contents = "No registration for peer (G:<stripped>/?/?)"} ... 9 : <CFString 0x38bb53d8 [0x3b6633e8]>{contents = "status"} = <CFNumber 0x165cacc0 [0x3b6633e8]>{value = +5030, type = kCFNumberSInt64Type} }
编辑1:
忘记日志中的下一个条目:(手动包装)
[(gamed:123:NO):Error] invite failed with error: Error Domain=GKErrorDomain Code=3 "The requested operation could not be completed due to an error communicating with the server." UserInfo={GKServerStatusCode=5030, NSUnderlyingError=0x167528a0 {Error Domain=GKServerErrorDomain Code=5030 "No registration for peer (<stripped>)" UserInfo={GKServerStatusCode=5030, NSLocalizedFailureReason=No registration for peer (<stripped>)}}, NSLocalizedDescription=The requested operation could not be completed due to an error communicating with the server.}
编辑2:
我在两台连接到运行Xcode 7.1的两个不同的mac上的两个非沙箱帐户进行了testing。 在任何一个方向,我仍然会在游戏中心制作者屏幕上看到“失败”信息。