Проблемы с входами в Службы Google Play

В настоящее время я внедряю Game Play Game Service в свою игру, чтобы обеспечить многопользовательскую игру в режиме реального времени (используя libgdx и BaseGameUtils).

Все работает отлично на моем Nexus 4 с моей главной учетной записью Google (войдите, создайте комнату и т.д.), назовите ее "A" .

Чтобы проверить автоматизацию и отправку/получение сообщений, я создал вторую учетную запись Google, назовите ее "B" и добавили эту учетную запись в мою (factory сбрасываемую) вкладку Samsung Galaxy.

Сначала все работало там также прекрасно - я смог создать автоматизированную комнату, отправить и получить текстовые сообщения и т.д. Но после 15 минут тестирования я больше не мог входить в аккаунт со счетом "B" на Galaxy Tab. Аккаунт "A" на Nexus 4 все еще работает нормально.

Чтобы исключить какие-либо проблемы с устройством, я добавил учетную запись "A" на свою вкладку Galaxy и логин был успешным. Я также добавил учетную запись "B" в свой Nexus 4, и логин не работает.

По истечении некоторого времени (30 минут), сразу после входа в систему с учетной записью "B" снова появится на обоих устройствах. И это мое текущее состояние: я могу сделать некоторые тесты с учетной записью "B" , но через короткое время он "блокируется", и я должен ждать, пока не смогу использовать его снова. Аккаунт "A" работает всегда.

В то время как это "блокирующее" время, я пробовал все: удаление данных/кеша приложений, удаление данных/кеш-данных службы воспроизведения, отключение приложения с помощью моего "B" -счета. Ничего не работает. Здесь вывод logcat, если я хочу войти с учетной записью "B" , когда она "заблокирована":

07-27 13:20:35.508: I/dul(13742): I/O exception (org.apache.http.NoHttpResponseException)   caught when processing request: The target server failed to respond
07-27 13:20:35.508: I/dul(13742): Retrying request
07-27 13:20:35.808: E/Volley(13742): [1224] ip.a: Unexpected response code 403 for   https://www.googleapis.com/games/v1/players/102515671693140579145
07-27 13:20:35.818: E/SignInIntentService(13742): Access Not Configured
07-27 13:20:35.818: E/SignInIntentService(13742): ark
07-27 13:20:35.818: E/SignInIntentService(13742):   at ams.b(SourceFile:189)
07-27 13:20:35.818: E/SignInIntentService(13742):   at ams.a(SourceFile:111)
07-27 13:20:35.818: E/SignInIntentService(13742):   at adz.a(SourceFile:220)
07-27 13:20:35.818: E/SignInIntentService(13742):   at adz.a(SourceFile:201)
07-27 13:20:35.818: E/SignInIntentService(13742):   at adi.a(SourceFile:489)
07-27 13:20:35.818: E/SignInIntentService(13742):   at att.a(SourceFile:221)
07-27 13:20:35.818: E/SignInIntentService(13742):   at   com.google.android.gms.games.service.GamesSignInIntentService.onHandleIntent(SourceFile:343 )
07-27 13:20:35.818: E/SignInIntentService(13742):   at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
07-27 13:20:35.818: E/SignInIntentService(13742):   at android.os.Handler.dispatchMessage(Handler.java:99)
07-27 13:20:35.818: E/SignInIntentService(13742):   at android.os.Looper.loop(Looper.java:137)
07-27 13:20:35.818: E/SignInIntentService(13742):   at android.os.HandlerThread.run(HandlerThread.java:60)
07-27 13:20:35.818: E/LoadSelfFragment(16159): Unable to sign in - application does not have a registered client ID

Конечно, у меня есть зарегистрированный идентификатор клиента, иначе я не смог бы войти в систему с учетной записью "A" , а иногда с учетной записью "B" . Конечно, я добавил обе учетные записи в консоли разработчика в белый список тестирования. И, конечно же, я добавил правильный идентификатор приложения через ссылку ресурса к моему манифесту.

Я не думаю, что это имеет какое-то отношение к моему коду, потому что учетная запись A никогда не имеет проблем, а учетная запись B работает "иногда". Есть ли какие-либо известные проблемы с контрольным "белым списком"? Или у вас есть предложения по решению этой проблемы? Кстати, я также не думаю, что я ограничена квотой, потому что это повлияет на оба счета, не так ли?

Я очень ценю вашу помощь

Ответ 1

Такое поведение произойдет, если:

Текущий пользователь подключен в любую комнату и:

приложение перезапускается, так что он пытается войти в сервисы Google, не пройдя часть разъединения, как это требуется службам Google Play.

Я обнаружил, что это произошло со мной довольно регулярно (к сожалению, для меня), поскольку я выяснял, как передавать сообщения между моим кодом Android и кодовой частью LibGDX (мое приложение просто блокировалось из-за проблем с синхронизацией). Я также настраиваю некоторые тестовые учетные записи, которые я мог бы "прокрутить", чтобы избежать полной блокировки входа в систему. Однако я узнал, что если бы я использовал диспетчер задач для того, чтобы убить процесс перед перезагрузкой приложения, 90% процента времени, Я мог бы продолжать использовать ту же учетную запись.

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

Короче говоря, чтобы ваша учетная запись была жизнеспособной:

1) убедитесь, что вы покинули RIM до обновления кода (я обнаружил, что регистрация из PS не требуется) 2) Если ваше приложение блокируется... Убивание процесса с помощью диспетчера задач (я использую Samsung), скорее всего, позволит вашей учетной записи продолжить (вы можете увидеть в logcat, где она вызывает отключение, когда вы это делаете) при запуске приложение снова.

Ответ 2

У меня такая же проблема, как user2446468, некоторые из моих тестовых учетных записей не могут войти в систему после работы в течение нескольких часов (после этого первоначального отказа они будут работать только через полчаса или около того... )

Здесь мой журнал для этого события...

08-06 17:03:08.945: D/Volley(21844): [664] ip.a: HTTP response for request=<[ ] https://www.googleapis.com/games/v1whitelisted/applications?language=en_US&platformType=ANDROID NORMAL 20> [lifetime=5926], [size=531], [rc=200], [retryCount=0]
08-06 17:03:08.975: D/Volley(21844): [1] ia.b: 5956 ms: [ ] https://www.googleapis.com/games/v1whitelisted/applications?language=en_US&platformType=ANDROID NORMAL 20
08-06 17:03:09.075: I/dul(21844): I/O exception (org.apache.http.NoHttpResponseException) caught when processing request: The target server failed to respond
08-06 17:03:09.075: I/dul(21844): Retrying request
08-06 17:03:09.295: W/AlarmManager(2301): FACTORY_ON= 0
08-06 17:03:09.915: E/Volley(21844): [655] ip.a: Unexpected response code 403 for https://www.googleapis.com/games/v1/players/11*******************
08-06 17:03:09.950: E/SignInIntentService(21844): Access Not Configured
08-06 17:03:09.950: E/SignInIntentService(21844): ark
08-06 17:03:09.950: E/SignInIntentService(21844):   at ams.b(SourceFile:189)
08-06 17:03:09.950: E/SignInIntentService(21844):   at ams.a(SourceFile:111)
08-06 17:03:09.950: E/SignInIntentService(21844):   at adz.a(SourceFile:220)
08-06 17:03:09.950: E/SignInIntentService(21844):   at adz.a(SourceFile:201)
08-06 17:03:09.950: E/SignInIntentService(21844):   at adi.a(SourceFile:489)
08-06 17:03:09.950: E/SignInIntentService(21844):   at att.a(SourceFile:221)
08-06 17:03:09.950: E/SignInIntentService(21844):   at com.google.android.gms.games.service.GamesSignInIntentService.onHandleIntent(SourceFile:343)
08-06 17:03:09.950: E/SignInIntentService(21844):   at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
08-06 17:03:09.950: E/SignInIntentService(21844):   at android.os.Handler.dispatchMessage(Handler.java:99)
08-06 17:03:09.950: E/SignInIntentService(21844):   at android.os.Looper.loop(Looper.java:137)
08-06 17:03:09.950: E/SignInIntentService(21844):   at android.os.HandlerThread.run(HandlerThread.java:60)
08-06 17:03:09.965: E/LoadSelfFragment(7796): Unable to sign in - application does not have a registered client ID

ОБНОВЛЕНИЕ: У меня есть веские основания полагать, что на самом деле есть что-то "блокирование" входа в течение определенного периода времени (я провел некоторое тестирование, скомпилировал версию стресс-теста, которая постоянно пыталась войти в систему ( с очень разумным кулдауном в 10 секунд, чтобы не доходить до каких-либо квот запроса), если вход в систему не прошел... Результатом был период 30-45 минут в автономном режиме и полное восстановление после этого (без вмешательства пользователя)... У меня есть следующие теории:

  • В неопубликованных приложениях могут быть по-разному применены квоты:(
  • Это может быть ошибка на стороне сервера, когда Google пытается выполнить аутентификацию, если пользователь действительно находится в списке тестеров для неопубликованного приложения (какие-то поисковики, чтобы проверить его для нас?)
  • То же самое, что и выше, но для самого неопубликованного приложения (но я сомневаюсь в этом, так как с пользователем A можно войти с пользователем, а не с пользователем B в данный момент времени).
  • Может быть встроен кеш в локальную активность игровых сервисов (кэширование неправильного идентификатора клиента (возможно, нулевого ptr где-то) для APP и, соответственно, получение этой ошибки 403), если это так, то это ошибка в Play Game API-интерфейс служб, а не серверная сторона...

Должен ли я открыть что-нибудь, что я буду держать вас в курсе, ребята...

Ответ 3

Недавно у меня тоже возникли проблемы. Я думаю, что они могут делать некоторое обслуживание на их стороне. Я только начал использовать другую тестовую учетную запись, и все это снова начало работать. Конечно, у меня теперь есть другие проблемы. Я изучаю свою проблему, и я обновлю вас, когда найду сторонников. На данный момент я предлагаю просто использовать другую (или новую) тестовую учетную запись (и убедитесь, что вы помните, чтобы авторизовать учетную запись для тестирования в консоли разработчика!)

Ответ 4

У вас есть учетная запись тестера, добавленная на оба устройства (через настройки)?

Я знаю этот глупый вопрос, но у меня была учетная запись тестера только на одном устройстве и получила то же (очень бесполезное) сообщение об ошибке. Вы не можете просто предположить, что вы можете добавить учетную запись тестировщика ко второму устройству через обычный входной поток - он просто провалится, если на устройстве не будет уже зарегистрирована учетная запись Google.