当我使用Group Leaderboard
inGame Center
时,我需要在我的应用程序中枚举的 id 中使用“grp”前缀吗?
换句话说,如果我将设置我现有的游戏以使用Group Leaderboard
我是否需要在我的应用程序中为每个 id 添加“grp”前缀?
4 回答
好的,它有效。您可以将现有排行榜移动到组,而无需在应用程序中执行任何更改。
希望我不要破坏 NDA,没有找到任何关于它的信息,除了这个链接 - http://david-smith.org/blog/2012/06/18/ios-6-nda-cheatsheet/
抱歉,如果我错误地阅读了您的问题。但我相信答案是肯定的。
我在我的游戏中使用了小组排行榜,并提交了这样的分数。
#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 前缀。
答案是肯定的,您确实必须更改为“grp”。字首。这就是 zakhej 可能认为他找到答案的原因:
例如,当您将单个排行榜放入一个组时,该单个排行榜将继续存在。如果您继续使用原始类别 ID 报告分数,您会将它们添加到原始单个排行榜,同时使用“grp.”。前缀会将它们添加到新的分组中,这本质上是您想要做的。简而言之,将排行榜放在一个组中将导致有两个排行榜,每个排行榜都使用自己的类别 ID 进行更新。
因此,看起来原来的类别 ID 将继续有效,但您正在查看旧的单一排行榜。这就是为什么您可能会注意到有时旧的类别 ID 会更新分数,而有时却不会。
解决这个问题花了相当长的时间,但 Apple iTunes Connect 支持以这种方式解释它并且说得通。不更新游戏的玩家将继续向旧排行榜报告分数,并将在游戏中心看到。当他们稍后更新时,他们可能会惊讶地发现他们的高分是您(开发人员)将该排行榜添加到组时的前一个。
本文档对规划 Game Center 实施非常有帮助:https ://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnectGameCenter_Guide/iTunesConnectGameCenter_Guide.pdf
这个问题有两个不同且相反的答案,所以我想我会表达我自己的经历:
TL;DR 不要添加grp.
前缀。
- 在应用程序上有排行榜,没有 Game Center Group。该应用程序已上线
- 用于
GKGameCenterViewController
显示最高分数效果很好 - 当应用程序上线时,我创建了一个新的 Game Center Group 并将其添加到其中
- 将排行榜 ID 更改为具有组上显示的新 ID,即带有
grp.
前缀 - 我能够将分数发布到排行榜,但是在启动时
GKGameCenterViewController
它没有在我实例化它的排行榜上打开,它只在仪表板上打开,好像它不再识别 ID。 - 将排行榜 id 改回原来的(不带
grp.
),现在我可以再次发布分数,并按GKGameCenterViewController
预期使用。
结论:您可以将id更改为新的,grp.
是否可以发布分数,结果是一样的,但GKGameCenterViewController
只有在您使用原始id时才有效。