Swift 5 / iOS 14 / 如何实现 Game Center 成就

问题描述 投票:0回答:1

我喜欢将 Game Center 成就添加到我的应用程序中。

出于测试目的,我在 App Store Connect 中创建了一个排行榜列表和两项成就,并在我的应用程序中启用了它们。

然后我在 Game Center 中验证了本地玩家并调用了 Dashboard。

我看到的是有一个排行榜可用。美好的。然而,0/0的成绩。 没有可用的成就。我认为我应该看到 0 / 2 成就,但我不知道为什么它们没有出现。

我还尝试使用 GKAchievement.report 报告成就,并且似乎报告没有错误。

但是当我尝试加载任何成就时,出现找不到成就的错误。

有什么想法我做错或忘记做什么了吗?

仪表板截图

swift game-center ios14 achievements
1个回答
0
投票

给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的功能返回。

© www.soinside.com 2019 - 2024. All rights reserved.