我已经提交了我的第一款应用 - 带有GameCenter leaderbords功能的SpriteKit游戏。但是我被拒绝的原因就是这样的错误:有时当玩家登录GameCenter游戏时认为他没有,并弹出通知"播放器未经过身份验证"。我不知道如何重现糟糕的错误,我在iPhone和iPad以及iOS 7和8上进行测试,一切正常。也许有人遇到这样的问题?这是GameCenter的实施代码:
var authenticationViewController: UIViewController?
var lastError: NSError?
var gameCenterEnabled: Bool
游戏开始时调用:
func authenticateLocalPlayer () {
let localPlayer = GKLocalPlayer.localPlayer()
localPlayer.authenticateHandler = {(viewController, error) in
self.lastError = error
if viewController != nil {
self.authenticationViewController = viewController
NSNotificationCenter.defaultCenter().postNotificationName(PresentAuthenticationViewController,
object: self)
} else if localPlayer.authenticated {
self.gameCenterEnabled = true
} else {
self.gameCenterEnabled = false
}
}
}
这也是在开始时调用的:
func showAuthenticationViewController() {
let game = Game.sharedInstance
if let authenticationViewController =
game.authenticationViewController {
self.presentViewController(authenticationViewController, animated: true, completion: nil)
}
}