让GameCenter邀请朋友上班(iOS9?)

Rai*_*rze 5 objective-c ios game-center ios9

我无法让GameCenter邀请朋友上班.匹配器制造商视图控制器很快显示被邀请的玩家以及其下的一个小文本"失败".也许我选择了错误的时间来学习GameCenter,因为很多人都报告了iOS9的困难.但也许某处有解决方案.

基本:

  1. iTunesConnect应用程序记录存在,应用程序未公开,已启用GameCenter,已创建一个排行榜,已创建两个沙箱用户(与我的主要苹果ID不同)
  2. 该应用程序有一个视图控制器,现在将处理所有GameCenter的东西
  3. viewDidLoad播放器中,通过分配块来启动认证[GKLocalPlayer localPlayer].authenticateHandler.在块中,显示传入的视图控制器(如果有的话).这有效.
  4. 视图控制器被设置为GKGameCenterControllerDelegate并且它工作,接收到"didFinish"调用并且我在那里关闭GameCenter视图控制器.
  5. 在authenticateHandler块中,当玩家通过身份验证时,我将视图控制器设置为侦听器[[GKLocalPlayer localPlayer] registerListener:...];.所有GKLocalPlayerListener方法的方法存根都通过日志调用实现.
  6. 当点击某个按钮时,我创建一个GKMatchRequestGKMatchmakerViewController,将我的视图控制器设置为匹配器委托并显示匹配器视图控制器.同样,所有委托方法都使用日志调用实现.
  7. 我可以运行应用程序,在媒人视图控制器中点击"邀请朋友"并按照屏幕直到我点击"发送"按钮.然后被邀请的玩家显示在右侧插槽中,很快"失败"显示在它下方并再次显示"自动匹配".
  8. 没有调用任何玩家监听器方法.

问题:

  1. 我是否需要启用推送通知才能让邀请朋友工作?(如果是,这在哪里记录?)
  2. 是否可以在模拟器/模拟器或设备/模拟器之间或仅在设备/设备之间测试邀请朋友?
  3. 在设备的GameKit日志中,"没有注册同行"是什么意思?(见下文)

其他资源:

  1. 在IOS 9中游戏中心多人游戏好友被打破了吗?(OCT/2015)
  2. 如何解决游戏中心的邀请朋友?(2013)
  3. http://www.raywenderlich.com/60980/game-center-tutorial-how-to-make-a-simple-multiplayer-game-with-sprite-kit-part-1(CatRace - 2014年3月)
  4. 游戏中心邀请立即失败(2015年10月)

GameKit日志:

我打开iPhone上的设置中的GameCenter日志记录并导出日志.引起我注意的第一件事是"没有注册同行(...)":

<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}
}
Run Code Online (Sandbox Code Playgroud)

编辑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.}
Run Code Online (Sandbox Code Playgroud)

编辑2:

我在两个设备上测试了两个非沙盒帐户,这两个设备连接到运行Xcode 7.1/iOS 9.1上的两个设备的两个不同的mac.无论哪个方向,我仍然在游戏中心匹配制造商屏幕上收到"失败"消息.