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

时间:2015-10-15 10:58:19

标签: ios objective-c ios9 game-center

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

基础:

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

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

      1. Is Game Center Multiplayer Friends broken in IOS 9?(2015年10月)
      2. How to solve inviting friend over game center?(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. Game Center invite fails immediately(2015年10月)
      5. GameKit Logs:

        我在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}
        }
        

        编辑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:

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

0 个答案:

没有答案