Проблема странная. Моя системная версия - IOS7. Все отлично работает на симуляторе ios7. Однако, когда я пытаюсь выполнить аутентификацию на своем iphone, ошибка в блоке обратного вызова всегда "GkErrorCanceled: the requested operation has been canceled or disabled by the user".
Даже если я уже вошел в игровой центр, ошибка все еще появляется.
Я попробовал проблему Google и нашел, что кто-то из stackoverflow перехватил проблему:
iPhone Simulator 6.0 не удалось подключиться к gamecenter в режиме песочницы.
Я пробовал следовать по пути, однако, это не сработало для меня. Я не знаю, сделал ли я что-то неправильно.
Может ли кто-нибудь дать мне более подробное решение по этому вопросу?
Большое спасибо!
Ios7 не может получить логин в усилении gamecenter после отмены 3 раза
Ответ 1
Update: Эта проблема возникает только в песочнице.
У вас тоже есть эта проблема, и вот что я понял:
GameCenter показывает приглашение для входа только несколько раз (3-5), если все приглашения отменены - GameCenter отключается для этого приложения.
В iOS 7 есть проблема: отключено состояние GameCenter, даже если вы входите в приложение GameCenter - приложение все равно получит вид этой ошибки:
error: Error Domain=GKErrorDomain Code=2 GkErrorCanceled: the requested operation has been canceled or disabled by the user
Существует два способа обхода:
Во-первых:
- Выйдите из Game Center через приложение "Настройки".
- Reset все настройки
- После перезагрузки устройства запустите приложение с помощью сборки разработки. После запуска появляется окно входа в систему GC.
Второе (это помогло мне):
- "Стереть все содержимое и настройки".
- Настроить как новое устройство - не восстанавливать из резервных копий.
Оба обходных решения не являются жизнеспособным вариантом для производства - я надеюсь, что вскоре будет исправлено Apple.
Большая часть информации относится к этому обсуждению.
Ответ 2
Настройки > Общие > Reset > Reset Все настройки
(я читаю это где-то, но если пользователь должен сделать то же самое, это не очень хорошее решение) (я сделал это для приложения, которое я тестирую, а не приложения, появившегося в App Store), который я тестировал для приложения из AppStore (не мое), и я не смог воспроизвести проблему, о которой я хочу сказать после того, как я зашел в систему из настроек, которые я был в этом приложении.
Но для приложения, которое я тестировал, работал только реселлинг. Я просто видел, что доступно новое обновление ios, возможно, это исправит.