Отчет Game Center/GameKit, если сеть недоступна

Я создаю игру, как приложение, поддерживающее Game Center. И у меня есть проблема с отчетом о счете в таблице лидеров, когда игрок правильно аутентифицирован в игровом центре, но сеть (wi-fi или сотовая связь) недоступна в то время, когда я хочу сообщить о своем счете.

Мое приложение предназначено для iOS 5.0 и более поздних версий и согласно документации - Списки лидеров - должно работать как говорится - пользуюсь только функцией

- (void)reportScoreWithCompletionHandler:(void (^)(NSError *error))completionHandler and 

и

Если по какой-либо причине счет не может быть сообщен из-за сетевой ошибки, Game Kit автоматически повторно отправляет данные, когда сеть становится доступной.

НО когда я отключаю Wi-Fi, играю в свою игру и сообщаю счет в этом автономном режиме, мой счет не сообщается, когда я снова подключаюсь к сети! :( Та же проблема, что и у меня с моими достижениями. Есть какой-то трюк или известная проблема? Или этот функционал доступен только для живых приложений, а не для тестирования?

Большое Вам спасибо.


person D33    schedule 13.11.2012    source источник


Ответы (2)


Я видел некоторые подобные проблемы. Это не ответ, но может указать на проблему. Вопреки ответу Натана Кристи, вы можете пройти аутентификацию, когда Wi-Fi отключен, поскольку я только что попробовал то же самое в режиме полета и смог аутентифицировать своего пользователя даже без сети. Что также происходит, так это то, что Game Center, похоже, хранит в кэше старую версию моих достижений и отображает их по запросу. Может случиться так, что если вы попытаетесь сообщить об обновлении достижений или списка лидеров, а кэшированная версия данных не распознает это, то обновление будет проигнорировано. Если я получу больше информации, я обновлю.

person Lewis Gordon    schedule 05.02.2013

Если ваше подключение к Интернету отключено, вы не сможете пройти аутентификацию в Game Center. Если аутентификации никогда не было, вы не можете воспользоваться автоматической повторной отправкой Apple. Они поддерживают вариант использования, когда пользователь успешно прошел аутентификацию, а затем сеть становится недоступной.

По сути, если вы вызываете reportScore:forLeaderboardID: после аутентификации, независимо от того, есть ли у вас сетевое соединение или нет, ваш объект результатов должен быть автоматически отправлен (в какое-то неопределенное время/интервал) Apple.

person NathanChristie    schedule 13.12.2012