Game Center verwendet, um perfekt vor einer Weile für eine andere App, die ich gemacht habe zu arbeiten. Aber merkwürdige Dinge geschehen jetzt seit ungefähr zwei Wochen mit meinem jetzigen.Game Center nicht Saving Scores
Upload und Download-Bericht kein Fehler und ich kann meine Punktzahl gut sehen. Aber wenn ich aufhöre mein Spiel zu spielen und dann 6 Stunden später zurückkomme, ist meine Punktzahl nicht mehr im Spielzentrum. Ich meine, buchstäblich keine Punkte. Das Herunterladen vom Spielzentrum, das vor 6 Stunden funktioniert, kann meine Punktzahl nicht abrufen.
Der Spielcenterstatus ist aktiv. Ich kann meine Punktzahl und andere im Bereich "Score verwalten" sehen. Allerdings kann ich nichts außer meiner Punktzahl in der Bestenliste von GKGameCenterViewController
sehen.
Soweit es mich betrifft, wurde alles richtig konfiguriert. Game Center in der App ist aktiviert.
-Code für die Ansicht Rangliste:
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)
}
-Code zum Download score:
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
}
})
}
und das Hochladen
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)")
}
})
}