我喜欢将 Game Center 成就添加到我的应用程序中。
出于测试目的,我在 App Store Connect 中创建了一个排行榜列表和两项成就,并在我的应用程序中启用了它们。
然后我在 Game Center 中验证了本地玩家并调用了 Dashboard。
我看到的是有一个排行榜可用。美好的。然而,0/0的成绩。 没有可用的成就。我认为我应该看到 0 / 2 成就,但我不知道为什么它们没有出现。
我还尝试使用 GKAchievement.report 报告成就,并且似乎报告没有错误。
但是当我尝试加载任何成就时,出现找不到成就的错误。
有什么想法我做错或忘记做什么了吗?
给Apple一些时间来同步数据。
时间过后,您应该考虑的一件事是,如果成就从未报告进度,您必须在代码端自行初始化它。
let allHardcodedAchievements = GameCenterAchievementType.allCases
var newAchievements = achievements ?? []
// Add hardcoded achievements if they are not in the array
allHardcodedAchievements.forEach { hardcodedAchievement in
if !newAchievements.contains(where: { $0.identifier == hardcodedAchievement.id }) {
newAchievements.append(.init(identifier: hardcodedAchievement.id))
}
}
self?.achievements = newAchievements
在 loadAchievement 块中,检查您的成就是否在 Apple 返回的数组中。如果不是,请通过调用 GKAchievement 的 init(identifier: String) 函数来添加你的成就。
一旦您报告任何进展,此后将通过Apple的功能返回。