iOS游戏中心组

时间:2012-07-20 08:30:52

标签: ios objective-c itunesconnect game-center

当我在Group Leaderboard中使用Game Center时,我是否需要在我的应用中枚举的ID中使用“grp”前缀?
换句话说,如果我将现有游戏设置为使用Group Leaderboard,我是否需要在我的应用中为每个ID添加“grp”前缀?

4 个答案:

答案 0 :(得分:7)

好的,它有效。您可以将现有排行榜移至组,而无需在应用程序中执行任何更改。

希望我不打破NDA,没有找到任何相关信息,除了这个链接 - http://david-smith.org/blog/2012/06/18/ios-6-nda-cheatsheet/

答案 1 :(得分:2)

对不起,如果我错误地阅读了您的问题。但我相信答案是肯定的。

我在游戏中使用组排行榜,我提交了一个分数。

            #define LeaderboardID @"grp.yourleaderboardname"

            GKScore *scoreReporter = [[GKScore alloc] initWithCategory:LeaderboardID];
            scoreReporter.value = yourscore;
            [scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
                if (error != nil) {  
                     NSLog(@"%@", error);
                } else {
                     NSLog(@"%@", @"Success submitting score");
                }
            }];
            [scoreReporter release]; 

之前没有使用群组排行榜的游戏我的LeaderboardID就是这样定义的。

#define LeaderboardID @"com.yourcomapny.yourgame.yourleaderboardname"

所以我相信你必须改变你的id以包含grp前缀。

答案 2 :(得分:1)

答案是肯定的,你必须改为“grp”。字首。这就是为什么zakhej可能已经想到为什么他找到了答案:

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

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

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

本文档在规划游戏中心实施方面非常有用:https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnectGameCenter_Guide/iTunesConnectGameCenter_Guide.pdf

答案 3 :(得分:0)

这个问题有两个不同且相反的答案,所以我想我会表达我自己的经历:

TL;DR 不要添加 grp. 前缀。

  • 在应用上有排行榜,没有 Game Center Group。该应用已上线
  • 使用 GKGameCenterViewController 显示最高分效果很好
  • 当应用上线时,我创建了一个新的 Game Center Group 并将其添加到其中
  • 将排行榜 ID 更改为组中显示的新 ID,即带有 grp. 前缀
  • 我能够将分数发布到排行榜,但是在启动 GKGameCenterViewController 时它没有在我实例化它的排行榜上打开,它只在仪表板上打开,好像它无法识别 ID
  • 将排行榜 ID 改回原来的 ID(没有 grp.),现在我可以再次发布分数,并按预期使用 GKGameCenterViewController

结论:你可以用grp.把id改成新的来发布分数,结果是一样的,但是GKGameCenterViewController只在你使用时有效原始 ID。