游戏中心不保存分数

Game Center Not Saving Scores

Game Center 曾经在我制作的另一个应用程序中完美运行。然而,我现在的那个奇怪的事情已经发生了大约两周。

上传和下载都没有报错,我可以看到我的分数很好。但是如果我停止玩我的游戏然后 6 小时后回来,我的分数就不再存在于游戏中心。我的意思是,完全没有分数。从 6 小时前可用的游戏中心下载现在无法检索我的分数。

游戏中心状态为实时。我可以在 "manage score" 部分看到我的分数和其他分数。但是,除了我在 GKGameCenterViewController.

的排行榜中的分数外,我什么也看不到。

就我而言,一切都已正确配置。应用程序功能中的 Game Center 已开启。

显示排行榜的代码:

func showLeaderBoard() {
    if GKLocalPlayer.localPlayer().isAuthenticated == false {
        self.present(authenticationViewController!, animated: true, completion: nil)
        return
    }

    let gamecenter = GKGameCenterViewController()
    gamecenter.gameCenterDelegate = self
    gamecenter.viewState = .leaderboards
    gamecenter.leaderboardIdentifier = leaderBoardID

    present(gamecenter, animated: true, completion: nil)
}

乐谱下载代码:

func downloadBestScoreFromGameCenter() {
    if GKLocalPlayer.localPlayer().isAuthenticated == false {return}
    print("Downloading Score...")

    let leaderBoard = GKLeaderboard()
    leaderBoard.identifier = leaderBoardID
    leaderBoard.loadScores(completionHandler: {
        [unowned self] (scores, error) in

        print("Download Error: \(error)")

        scores?.forEach({print("\([=11=].player?.displayName!) \([=11=].value)")})

        if let localPlayerScore = leaderBoard.localPlayerScore?.value {
            self.bestScore = Int(localPlayerScore)
            self.saveGameForCurrentState()
        } else {
            self.bestScore = 0
        }
    })
}

正在上传

func uploadBestScoreToGameCenter() {
    if GKLocalPlayer.localPlayer().isAuthenticated == false {return}

    let scoreItem = GKScore(leaderboardIdentifier: leaderBoardID)
    scoreItem.value = Int64(self.bestScore)

    GKScore.report([scoreItem], withCompletionHandler: {
        (error) in
        if let error = error {
            print(error)
        } else {
            print("Upload complete: \(scoreItem.value)")
        }
    })
}

好的,今天排行榜开始运行了。我想你只需要等人。