我有一个现有的付费 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/