如何重新验证游戏中心?

Posted

技术标签:

【中文标题】如何重新验证游戏中心?【英文标题】:How to reauthenticate Game Center? 【发布时间】:2017-09-06 16:12:16 【问题描述】:

我的游戏中有 2 种语言,iTunes Connect 上有 2 个排行榜。当我切换语言时,我希望 Game Center 重新验证并即时更改排行榜。我的代码有效,因为如果我用主页按钮关闭应用程序并重新打开它(而不是从应用程序切换器退出),它会加载另一个排行榜的数据。但它不会在不关闭/重新打开的情况下加载新数据。我想我必须以某种方式重新进行身份验证,但调用相同的身份验证代码并不能完成这项工作。

func authenticateLocalPlayer(after: Double) 
    DispatchQueue.main.asyncAfter(deadline: .now() + after) 
        localPlayer = GKLocalPlayer.localPlayer()
        localPlayer.authenticateHandler = (ViewController, error) -> Void in
            if((ViewController) != nil) 
                // Show login if player is not logged in
                //self.present(ViewController!, animated: true, completion: nil)
             else if (localPlayer.isAuthenticated) 
                // Get the default leaderboard ID
                localPlayer.loadDefaultLeaderboardIdentifier(completionHandler:  (leaderboardIdentifer, error) in
                    if error != nil  print(error ?? "Error")
                     else  gcDefaultLeaderBoard = leaderboardIdentifer! 
                )

                leaderboardRequest?.identifier = NSLocalizedString("Leaderboard ID".localized(lang: UserDefaults.standard.object(forKey: "Language") as! String), comment: "")
           
        
    

【问题讨论】:

【参考方案1】:

添加这些解决了这个问题。

leaderboardRequest?.identifier = "XXXX"
localPlayer.setDefaultLeaderboardIdentifier("XXXX", completionHandler:  (err) in )

【讨论】:

以上是关于如何重新验证游戏中心?的主要内容,如果未能解决你的问题,请参考以下文章

Spring认证指南:了解如何使用 Spring 执行表单验证

如何将 iOS APNs 身份验证密钥与 Azure 通知中心一起使用?

针对用户在个人中心绑定手机认证的一些js代码。

Azure 事件中心偏移

如何使用 swift 对本地玩家进行身份验证?

数据中心虚拟化7大考量要素