我有一个现有的付费iOS和应用程序,我想发布一个免费版本。付费版本有一个排行榜和几个已经使用了几个月的成就,如果我尝试将它们移动到一个组中,我会收到这些错误:
注意:已存在具有此ID的排行榜 - 对于排行榜注意:已存在具有此ID的成就 - 仅取得一些成就
没有重复的ID,为什么会发生这种情况?如果我更改了他们的名字,我将不得不发布付费应用的更新以反映新ID,这是正确的吗?
是否有一种简单的方法来处理这样付费的应用程序用户和免费的应用程序用户可以使用相同的排行榜和成就,而无需更新付费应用程序?
建议会很棒,谢谢
你问多个问题,我会尝试回答其中的一些问题:
首先“如果我更改他们的名字,我将不得不发布付费应用程序的更新以反映新ID,这是正确的吗?”这取决于您如何将游戏中心得分记者的类别字符串组合在一起。如果你可以动态更改字符串(通过服务器查询),那么我猜你不必更新你的应用程序。但通常当您成功将现有排行榜复制到新组时,新组合排行榜的类别字符串则需要具有前缀“grp”。
事实是,例如,当您将一个排行榜放入一个组时,该单个排行榜将继续存在。如果您继续使用原始类别ID报告分数,则会将其添加到原始单个排行榜,而使用“grp”。前缀会将它们添加到新的分组中,这基本上就是您想要做的。简而言之,将排行榜放在一个组中将导致有两个排行榜,每个排行榜都会使用自己的类别ID进行更新。
因此,原始类别ID似乎可以继续工作,但是您正在查看旧的单一排行榜。这就是为什么您可能会注意到有时旧ID会更新分数,有时则不会。
花了很长时间来解决这个问题,但Apple itunes Connect支持解释了这一点,这是有道理的。不更新游戏的玩家将继续向旧排行榜报告分数,并将在游戏中心看到该分数。当他们稍后更新时,他们可能会惊讶地看到他们的高分是从您开发人员添加到该组的排行榜时的前一个。
第二个“是否有一种简单的方法可以解决这个问题,这样付费的应用用户和免费的应用用户可以使用相同的排行榜和成就,而无需更新付费应用?”请参阅第一个答案,但您必须始终提前计划。在您发布游戏的第一个版本之前,您应该知道是否可以存在对同一个排行榜有贡献的mod。请记住,排行榜只能在一个组中。
本文档非常有助于规划Game Center实现:https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnectGameCenter_Guide/iTunesConnectGameCenter_Guide.pdf
我遇到了一个问题,我正在创建一个小组并将我的所有排行榜和成就转移到其中,但App Store Connect会抱怨:
注意:ID已存在ID为“grp.foo”的排行榜。
在浏览网页,梳理Apple的文档和WWDC视频,并联系Apple的支持后,我最终偶然发现了一个解决方案。
我猜测新的群组ID可能必须是全球唯一的,而不仅仅是您的应用或群组所独有的。我的ID有简单的名字,如bestScore
。因此,我将我的组ID添加到grp.companyname.groupname
而不仅仅是grp.
之后我能够无错误地进入确认页面。最后的“提交”可能需要一些时间才能完成 - 我猜它正在做一些复制。