iOS Game Center 将排行榜和成就移至 2 个游戏组

标签 ios app-store-connect game-center

我有一个现有的付费 iOS 和应用程序,我想发布一个免费版本。付费版本有一个排行榜和几个已经使用了几个月的成就,如果我尝试将它们移动到一个组中,我会得到这些错误:

注意:具有此 ID 的排行榜已经存在 - 对于排行榜 注意:具有此 ID 的成就已经存在 - 对于一些成就

没有重复的 ID,为什么会这样?如果我更改他们的名字,我将不得不为付费应用发布更新以反射(reflect)新 ID,对吗?

是否有一种简单的方法可以解决这个问题,使付费应用用户和免费应用用户可以使用相同的排行榜和成就,而无需更新付费应用?

建议很好,谢谢

最佳答案

你问了很多问题,我会尽量回答其中的一些:

首先 “如果我更改他们的名字,我将不得不发布付费应用程序的更新以反射(reflect)新 ID,对吗?” 这取决于您如何为 Game Center 得分报告程序组合您的类别字符串。如果您可以动态更改字符串(通过服务器查询),那么我想您不必更新您的应用程序。 但通常当您成功将现有排行榜复制到新组时,新分组排行榜的类别字符串需要具有前缀“grp”。

事实是,例如,当您将单个排行榜放入组中时,该单个排行榜将继续存在。如果您继续使用原始类别 ID 报告分数,您会将它们添加到原始的单一排行榜中,而使用“grp.” prefix 会将它们添加到新的分组中,这实际上就是您想要做的。简而言之,将排行榜放在一个组中将导致有两个排行榜,每个排行榜都更新了自己的类别 ID。

因此,看起来原来的类别 ID 将继续有效,但您看到的是旧的单一排行榜。这就是为什么您可能会注意到有时旧 ID 会更新分数,有时却不会。

弄清楚这一点花了很长时间,但 Apple itunes Connect 支持人员以这种方式解释了它,而且它是有道理的。不更新游戏的玩家将继续向旧排行榜报告分数,并将在游戏中心看到。当他们稍后更新时,他们可能会惊讶地发现他们的高分是您(开发者)将该排行榜添加到组中时的前一个。

第二个 “有没有一种简单的方法可以解决这个问题,让付费应用用户和免费应用用户可以使用相同的排行榜和成就,而无需更新付费应用?” 请参阅第一个答案,但您必须始终提前计划。在您发布游戏的第一个版本之前,您应该知道是否可以有 mod 为同一个排行榜做出贡献。请记住,排行榜只能属于一个组。

此文档对规划 Game Center 实现非常有帮助: https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnectGameCenter_Guide/iTunesConnectGameCenter_Guide.pdf

关于iOS Game Center 将排行榜和成就移至 2 个游戏组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20365310/

相关文章:

cocos2d-iphone - iOS 6 Game Center 在身份验证时崩溃

ios - 在 ios swift 中使用云 Firestore 进行电话身份验证?

ios - 更改为 Swift 3 后,类型为 'UIBarButtonItem!' 的属性无法覆盖类型为 'UIResponder?' 的属性

ios - 弱引用和保留循环

ios - 获取之前应用版本的应用商店信息

ios - 在 App Store 中时应用程序的 Bundle ID 名称

iphone - iOS 开发 : How do I auto match players in Game Center?

ios - 使用Sandbox在iOS中测试应用内购买的问题

ios - 从 iTunes Connect 中删除构建

swift - 游戏中心整合