沙箱排行榜空

时间:2011-06-17 23:45:23

标签: iphone center sandbox leaderboard

我正在尝试为我的应用制作游戏中心排行榜。我一直在遵循Apple的步骤并遵循GKTapper的示例代码,但我无法在Game Center中显示任何分数。我在iTunes Connect中设置了排行榜。以下是报告分数的代码:

- (void) reportScore: (int64_t) score forCategory: (NSString *) category {
    GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:category] autorelease];
    scoreReporter.value = score;

    [scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
        if (error != nil)
        {
            UIAlertView* alert= [[[UIAlertView alloc] initWithTitle: @"Score Report Failed!" message: [NSString stringWithFormat: @"Reason: %@", [error localizedDescription]] delegate: self cancelButtonTitle: @"Try Again..." otherButtonTitles: NULL] autorelease];
            [alert show];
        }
    }];
}

代码似乎运行良好。警报永远不会显示。但是,当我进入Game Center时,排行榜是空白的。我正在运行Xcode 4.2和iOS 5.有什么想法吗?

5 个答案:

答案 0 :(得分:3)

无论被告知什么都是完全正确的:

  • 你需要一个int_64t分数;
  • 您需要在iTunesConnect上设置所有内容;
  • 您需要使用沙箱帐户。

我刚刚发现,iTunesConnect中没有类别的东西。另一方面,您应该使用排行榜类别初始化您的GKScore。

从我在论坛上看到的情况来看,大约有2/3的人做对了。

在iTunesConnect中,配置排行榜时,请设置:

  • 它的参考(我一直认为是类别);
  • 其ID(原来是实际类别)。

我试图使用引用而不是ID来发布分数。

两件事:

  • 首先,我没有来自该程序的错误(在某种程度上,这是可以接受的);
  • 第二,一旦我做对了,我注意到,虽然很多人声称相反,但不需要多个沙箱帐户来显示分数。

答案 1 :(得分:2)

在init为我修复后再次明确设置类别。

Scoreobject.category = category

为了显示正确的排行榜,我也在那里设置了类别。

leaderboardobject.category = @"mycategory";

答案 2 :(得分:0)

1)请检查您是否正确拼写了该类别。令人惊讶的是,即使我的类别拼写错误,我也没有收到错误。纠正错字为我解决了问题。

2)在呈现GKLeaderboardViewController之前,请检查您是否设置了正确的排行榜?正确设置如下:

GKLeaderboardViewController *leaderboardViewController = [[[GKLeaderboardViewController alloc] init] autorelease];
leaderboardViewController.category = @"yourcategoryname";
[youviewcontroller presentModalViewController:leaderboardViewController animated: YES];

答案 3 :(得分:0)

两名经过验证的GameCenter用户必须在排行榜中显示任何分数之前向排行榜报告分数。

如果沙盒中只有一个用户,请创建另一个用户并报告分数。

如果仍然无效,请确保您验证了两个用户的电子邮件地址。

答案 4 :(得分:-1)

reportScoreWithCompletionHandler的文档说:

“在报告任务完成之前,您的应用程序应保留对分数对象的强引用。”

您正在自动释放。由于任务将在稍后完成,因此可能在执行操作之前删除该对象。