0

On iTunes Connect I already setup everything correctly. This is what i tried:

func saveHighscore(number: Int){

    if GKLocalPlayer.localPlayer().isAuthenticated {

        let scoreReporter = GKScore(leaderboardIdentifier: "This")
        scoreReporter.value = Int64(number)
        let scoreArray : [GKScore] = [scoreReporter]

        GKScore.report(scoreArray, withCompletionHandler: nil)

    }

}

func showLeaderBoard(){
    let viewController = self.view.window?.rootViewController
    let gcvc = GKGameCenterViewController()

    gcvc.gameCenterDelegate = self

    viewController?.present(gcvc, animated: true, completion: nil)


}

func gameCenterViewControllerDidFinish(_ gameCenterViewController: GKGameCenterViewController) {
    gameCenterViewController.dismiss(animated: true, completion: nil)

}

Finally I call the saveHighscore function but it doesn't work. What am I miss?

Leo Dabus
  • 229,809
  • 59
  • 489
  • 571
E. Tess
  • 17
  • 2

1 Answers1

0

You need to authenticate the player. You can do this with this function:

func authPlayer (){
    let localPlayer = GKLocalPlayer.localPlayer()
    localPlayer.authenticateHandler = {
    (view, error) in
        if view != nil{
            self.present(view!, animated: true, completion: nil)
        }
        else {
            print(GKLocalPlayer.localPlayer().isAuthenticated)
        }
    }

}

You need to call this function in the begin.

l30c0d35
  • 777
  • 1
  • 8
  • 32