GameCenter不更新排行榜

时间:2013-06-07 07:23:17

标签: ios game-center leaderboard

使用沙盒游戏中心。

无论我做什么,分数都不会出现在排行榜中。

我使用以下代码:

- (void)scoreReported: (NSError*) error {
    NSLog(@"%@",[error localizedDescription]);
}

- (void)submitScore{

    if(self.currentScore > 0)
    {
        NSLog(@"Score: %lli submitted to leaderboard %@", self.currentScore, self.currentLeaderBoard);
        [gameCenterManager reportScore: self.currentScore forCategory: self.currentLeaderBoard];
    }
}

得分报告并没有产生错误,但得分并没有出现在排行榜中。我知道该类别是正确的,因为我使用currentLeaderBoard:

- (void)showLeaderboard {
    NSLog(@"leaderboard = %@", self.currentLeaderBoard);
    GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
    if (leaderboardController != NULL)
    {
        leaderboardController.category = self.currentLeaderBoard;
        //leaderboardController.category = nil;
        leaderboardController.timeScope = GKLeaderboardTimeScopeWeek;
        leaderboardController.leaderboardDelegate = self;
        [self presentModalViewController: leaderboardController animated: YES];
    }
}

我试过平时 2个不同的沙盒GC帐户,以使排行榜工作 甚至尝试了4个不同的GC帐户,每个帐户都登录模拟器(iOS 6.1)和设备(iOS 6.0.1) 但仍然没有快乐

任何建议 - 或者只是沙盒游戏中心太多了! (我会提出一个关于沙箱的错误,但苹果错误报告表中有一个错误,所以它也不起作用)

2 个答案:

答案 0 :(得分:4)

即使在沙盒模式下,对游戏中心的分数报告几乎立刻也能正常工作。

以下是您可以尝试的一些事项

  1. 报告分数时确保排行榜标识符正确(应与iTunesConnect中的“排行榜ID”完全匹配)
  2. 尝试删除iTunesConnect“管理游戏中心”部分下的测试数据
  3. 删除该应用程序,在您的设备中启动“Game Center”应用程序,然后转到“游戏”标签并删除您的应用。重新安装该应用并尝试再次报告该分数。
  4. 确保[gkScore reportScoreWithCompletionHandler:^(NSError * error)不会返回任何错误

答案 1 :(得分:2)

对于那些想知道我将submitScore方法更改为:

的人
 - (void)submitScore {
    GKScore * GCscore = [[GKScore alloc] initWithCategory:self.currentLeaderBoard];
    GCscore.value = [[NSUserDefaults standardUserDefaults] integerForKey:@"NEWSCORE"];
    [GCscore reportScoreWithCompletionHandler:^(NSError *error) {
        dispatch_async(dispatch_get_main_queue(), ^(void) {
            if (error == NULL) {
                NSLog(@"Score Sent");
            } else {
                NSLog(@"Score Failed, %@",[error localizedDescription]);
            }
        });
    }];
  }

并且有效