таблица лидеров песочницы пуста - PullRequest
7 голосов
/ 18 июня 2011

Я пытаюсь создать таблицу лидеров Game Center для своего приложения.Я следовал инструкциям 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 ]

3 голосов
/ 14 сентября 2012

Все, что было сказано, полностью верно:

  • вам нужен счет int_64t;
  • вам нужно все настроить на iTunesConnect;
  • вам нужно использовать учетную запись песочницы.

Я только что обнаружил, что в iTunesConnect нет такой вещи, как Категория. С другой стороны, вы должны начать GKScore с категорией лидеров.

Из того, что я видел на форумах, примерно 2/3 людей понимают это правильно.

В iTunesConnect при настройке списка лидеров вы устанавливаете:

  • его ссылка (которую я долго считал категорией);
  • его ID (который является фактической категорией).

Я пытался опубликовать счет, используя ссылку вместо идентификатора.

Две вещи:

  • во-первых, у меня не было ошибки в программе (что, в некотором смысле, приемлемо);
  • во-вторых, как только я понял это правильно, я заметил, что, хотя многие люди утверждают обратное, не нужно больше, чем один аккаунт в песочнице, чтобы отобразить счет.
2 голосов
/ 13 апреля 2012

Установка категории снова явно после того, как init исправил ее для меня.

Scoreobject.category = category

Также, чтобы показать правильный список лидеров, я также установил категорию.

leaderboardobject.category = @"mycategory";
0 голосов
/ 08 мая 2012

Два подтвержденных пользователя GameCenter должны сообщить о результатах в таблицу лидеров, прежде чем какие-либо результаты будут отображены в таблице лидеров.

Если у вас есть только один пользователь в своей песочнице, создайте другого и сообщите о счете.

Если он все еще не работает, убедитесь, что вы подтвердили адрес электронной почты обоих пользователей.

0 голосов
/ 04 мая 2012

1) Пожалуйста, проверьте правильность написания категории.Удивительно, но я не получил ошибку, даже когда у меня была ошибка в категории.Исправление опечатки устранило проблему для меня.

2) Пожалуйста, проверьте, правильно ли вы устанавливаете таблицу лидеров, прежде чем представлять GKLeaderboardViewController?Установите его правильно, как показано ниже:

GKLeaderboardViewController *leaderboardViewController = [[[GKLeaderboardViewController alloc] init] autorelease];
leaderboardViewController.category = @"yourcategoryname";
[youviewcontroller presentModalViewController:leaderboardViewController animated: YES];
0 голосов
/ 31 декабря 2011

Документация для отчетаScoreWithCompletionHandler гласит:

«Ваше приложение должно сохранять четкую ссылку на объект оценки до тех пор, пока задача отчетности не будет завершена.»

Вы автоматически выпускаете. Поскольку задача будет выполнена позже, объект, вероятно, будет удален перед выполнением операции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...