Game Center: authenticates ok, shows leaderboard ok, posts (my) score ok, only 2 players?

StackOverflow https://stackoverflow.com/questions/7775612

  •  10-02-2021
  •  | 
  •  

Вопрос

My game (called "Clear the Square") has gotten approved. It's getting hundreds of downloads. It's currently #44 in free word games in the US. There is only one problem: when I go to the Game Center leaderboards, it shows two users, one of them being me. And one of them being (very appropriately named) someone who isn't me. Here is a screenshot of what this looks like: http://clearthesquareapp.com/photo-9.PNG

I know that there are more than two people playing this (iAd tells me so.) I also know that the game is not unwinnable; somewhat challenging, but not unwinnable. And I know that Game Center didn't just completely go out of style overnight. In all other games that have ever been anywhere near a top-100 list, there are at least a few hundred all-time scores on the leaderboard.

Thinking that the problem might be that my development build is somehow special and goes to an alternate, "sandbox" set of leaderboards, I deleted the binary from my phone, rebooted my phone, and downloaded the game from the App Store. Same thing. So that wasn't the problem.

Here's all my GameCenter code; it comes straight from example projects. I don't know what could be missing, since it does successfully authenticate, it does show leaderboards, and it does post my score -- each time I set a high score, it is instantly reflected in the leaderboard.

I would really, really appreciate it if someone could download the free version of my game, and send me a screenshot of what the leaderboards look like on your end. You would definitely get promo codes for every future app I make.

- (void) authenticateLocalPlayer

{

     GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];

     [localPlayer authenticateWithCompletionHandler:^(NSError *error) {

     if (localPlayer.isAuthenticated)

     {

     NSLog(@"authenticated in game center!");
     // Perform additional tasks for the authenticated player.

     }

     }];

}

- (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)

        {

            // handle the reporting error

        }

    }];

}

- (void) showLeaderboard
    {
        GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
        if (leaderboardController != nil)
        {
            leaderboardController.leaderboardDelegate = self;
            [self presentModalViewController: leaderboardController animated: YES];
        }
    }

- (void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController {
    [self dismissModalViewControllerAnimated:YES];
}

There should be more than two players on this leaderboard. What am I missing?

Edit: also, worth noting that it has already been out for about 48 hours, and probably has about 1000 downloads so far. So I am quite sure that it's not just a matter of nobody having had time to win a game yet.

Это было полезно?

Решение

You're probably still signed in to your "sandbox" Game Center account. Log out of that, and then log into your real account, and you should see the real leaderboards.

I ran into this problem myself, and it sometimes didn't "take" to log out and back in, so try a couple times. I think I may have had to kill (via the double-tap home button) the Game Center app after logging out of the sandbox, and before logging into the real account, for it to work.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top