Игровой центр работал совсем недавно, для другого приложения, которое я создал. Как бы странные вещи не происходили с моим нынешним в течение двух недель.Игровой центр не сохраняет очки
Загрузите и скачайте отчет без ошибок, и я вижу, что мой счет отлично. Но если я перестану играть в свою игру, а затем через 6 часов вернусь к ней, мой счет больше не будет в игровом центре. Я имею в виду, буквально никакого результата. Загрузка из игрового центра, который работает 6 часов назад, теперь не может получить мой результат.
Игровой центр находится в режиме реального времени. Я могу видеть свою оценку и другие в разделе «Управление счетом». Тем не менее, я не вижу ничего, кроме своего счета в таблице лидеров от GKGameCenterViewController
.
Насколько я понимаю, все настроено правильно. Игровой центр в возможностях приложения включен.
Код для показа лидеров:
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("\($0.player?.displayName!) \($0.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)")
}
})
}