2017-09-06 4 views
0

게임에 2 개의 언어가 있으며 iTunes Connect에 2 개의 리더 보드가 있습니다. 언어를 전환 할 때 Game Center에서 리더 보드를 즉시 인증하고 변경하도록합니다. 내 코드는 앱을 홈 버튼으로 닫고 앱 스위치에서 종료하지 않고 다시 열면 다른 리더 보드의 데이터가로드되기 때문에 작동합니다. 하지만 닫히거나 다시 열지 않고도 새 데이터를로드하지는 않습니다. 어떻게 든 재 인증해야하지만 같은 인증 코드를 호출한다고해서 그 일을하지는 않는다고 생각합니다.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: "") 
      } 
     } 
    } 
} 

답변

0

이러한 사항을 추가하면 문제가 해결됩니다.

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