sandbox leaderboard empty

I'm trying to make a Game Center leaderboard for my app. I've been following the steps from Apple and following the sample code from GKTapper, but I can't get any scores to show in Game Center. I've set up the leaderboard in iTunes Connect. Here's the code that reports the score:

- (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];
        }
    }];
}

The code seems to run fine. The alert is never shown. But, when I go into Game Center, the leaderboard is blank. I'm running Xcode 4.2 and iOS 5. Any ideas?


Whatever's been told is completely true :

  • you need an int_64t score;
  • you need all things set up on iTunesConnect;
  • you need to use a sandbox account.
  • What I have just found out is that there's no such thing in iTunesConnect as the Category. On the other hand, you're supposed to init your GKScore with the leaderboard category.

    From what i've seen over the forums, about 2/3 of the people get it right.

    In iTunesConnect, when you configure a leaderboard, you set :

  • its reference (which i long thought was the category);
  • its ID (which turns out to be the actual category).
  • I was trying to post score using the reference instead of the ID.

    Two things :

  • first, i had no error from the program (which, in some way, is acceptable);
  • second, once i got it right, i notice that, whereas many people claim the opposite, there's no need for more than one sandbox account to display the score.

  • Setting the category explicitly again after the init fixed it for me.

    Scoreobject.category = category
    

    Also to show the right leaderboard I set the category there aswell.

    leaderboardobject.category = @"mycategory";
    

    1) Please check if you have spelled the category correctly. Surprisingly, I was not getting an error even when I had my category misspelled. Correcting the typo fixed the issue for me.

    2) Please check if you are setting the right Leaderboard before presenting the GKLeaderboardViewController? Set it correctly as below:

    GKLeaderboardViewController *leaderboardViewController = [[[GKLeaderboardViewController alloc] init] autorelease];
    leaderboardViewController.category = @"yourcategoryname";
    [youviewcontroller presentModalViewController:leaderboardViewController animated: YES];
    
    链接地址: http://www.djcxy.com/p/53104.html

    上一篇: 为什么我必须释放这些数据? 我是店主吗?

    下一篇: 沙箱排行榜空