我们在使用GKGameCenterViewController
发送邀请时遇到问题。视图控制器打开就好了,但是当我们尝试向某人发送邀请时,它会立即失败。两个帐户都启用了游戏中心邀请,并通过GKGameViewController
找到其他玩家。以下是我们用来管理邀请的代码:
一旦GKLocalPlayer
通过身份验证就会调用此方法(从GameViewController
调用身份验证,此代码位于单独的Game Center管理类中):
internal func authenticationChanged() {
if GKLocalPlayer.localPlayer().authenticated && !authenticated {
print("Authentication changed: player authenticated")
authenticated = true
GKLocalPlayer.localPlayer().unregisterAllListeners()
GKLocalPlayer.localPlayer().registerListener(self)
} else {
print("Authentication changed: player not authenticated")
authenticated = false
GKLocalPlayer.localPlayer().unregisterAllListeners()
}
}
这是收到邀请时应该调用的方法,虽然它不会被调用,因为邀请会在发送后立即失败。
public func player(player: GKPlayer, didAcceptInvite inviteToAccept: GKInvite) {
//presentingViewController.dismissViewControllerAnimated(false, completion: nil)
print("Accepted invite")
let mmvc = GKMatchmakerViewController(invite: inviteToAccept)!
mmvc.matchmakerDelegate = self
presentingViewController.presentViewController(mmvc, animated: true, completion: nil)
}
这两段代码都在符合GKMatchmakerViewControllerDelegate, GKGameCenterControllerDelegate, GKMatchDelegate, GKLocalPlayerListener
代理和协议的同一个类中。
答案 0 :(得分:0)
我遇到了完全相同的问题。问题似乎是我在应用程序设置中使用了新版本的字符串 - 我将其放回到目前在iTunes Connect中并与Game Center合作的版本中,这一切都运行顺畅!