Игровой центр iOS: результаты не отображаются в таблице лидеров в песочнице
Я разрабатываю игру с поддержкой Game Center, и я сталкиваюсь с проблемой в среде песочницы. Я могу успешно сообщать счет без ошибок. Однако, когда я показываю таблицу лидеров, видимых результатов нет. Чтобы проверить, действительно ли полученная оценка была получена, я запрашиваю локальный счет пользователя с помощью следующего кода:
-(void)retrieveLocalScoreForCategory:(NSString *)category
{
GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
leaderboardRequest.category = category;
[leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores,NSError *error)
{
[self callDelegateOnMainThread: @selector(localPlayerScore:error:) withArg: leaderboardRequest.localPlayerScore error: error];
}];
}
В моем делегате я зачисляю счет на консоль, и я вижу, что туда попал правильный счет. Я уже подтвердил, что я показываю таблицу лидеров, используя правильный идентификатор категории лидеров (у меня есть только один).
Кто-нибудь знает, почему мой счет не сразу отображается в таблице лидеров в среде песочницы? Есть ли задержка до появления показа?
Ответы
Ответ 1
Я столкнулся с той же проблемой с проектами, над которыми я работал.
GC Leaderboards (песочница/живая игра) вернет только результаты, если на Лидерских досках есть два или более игрока.
Поэтому убедитесь, что вы либо отправляете счет с двумя разными учетными записями на одном устройстве, либо на двух разных учетных записях на отдельных устройствах.
Ответ 2
Попробуйте изменить timeScope.
Иногда GKLeaderboardTimeScopeAllTime и GKLeaderboardTimeScopeToday ничего не возвращает, но GKLeaderboardTimeScopeWeek отлично работает. Я думаю, что это проблема с песочницей GC.
Слушайте нас Apple: используйте некоторые из этих миллиардов, чтобы улучшить ваши веб-службы.