Службы Google Play Game – невозможно войти в систему

Сразу после вчерашнего ключевого слова ввода-вывода Google я обновил свой Android SDK, чтобы интегрировать сервисы игры в одно из моих приложений.

Вещи, которые я сделал до сих пор:

  1. Добавлено и связало мое приложение в Dev Console (игровые службы)
  2. Включил идентификатор клиента OAuth в мое приложение / манифест
  3. BaseGameActivity и GameHelper к моему проекту ( от GitHub )
  4. Добавила библиотеку google-play-services в мой проект
  5. Расширенный BaseGameActivity , добавлен com.google.android.gms.common.SignInButton

Я также создал мета-данные и, конечно же, некоторые достижения. Консоль dev утверждает, что она готова к выпуску. Чтобы проверить поток входа и достижения, я добавил две учетные записи Google+ в качестве тестовых пользователей.

Но когда я тестирую SignInButton, появляется предупреждение: Неизвестная ошибка . Вот logcat:

 ERROR/Volley: il.a: Unexpected response code 403 for https://www.googleapis.com/games/v1/players/me ERROR/SignInIntentService: Access Not Configured ERROR/LoadSelfFragment: Unable to sign in - application does not have a registered client ID 

Я создал свое приложение в режиме производства – используя ProGuard и правильный сертификат.

Я что-то пропустил?

Обновление – еще несколько попыток

Вот краткий обзор того, что я пытался в то же время. Ничего не помогло.

  • Удалить и воссоздать связанную запись приложения Android (двойной флажок сертификата отпечатка)
  • Отключить антипиратство
  • Пропустить proguard
  • Создать новую (тестовую) игру и использовать ее идентификатор клиента

Проблема не связана с разделами учетных записей для тестирования . Использование учетной записи, которая не включена для тестирования, приведет к появлению другого сообщения об ошибке:

 E/GameAgent: Unable to retrieve 1P application 547xxxxxx457 from network E/CheckGameplayAcl: Unable to load metadata for game 

Решение Харток!

Решение Hartok помогло мне решить эту проблему. Раньше я никогда не посещал Консоль API Google . Важно знать, что идентификатор клиента OAuth не удаляется при удалении связанного приложения из вашей игры или даже удалении игры (в консоли Dev). Вы должны посетить API-консоль и удалить ее вручную.

Автоматически выбранный отпечаток SHA1 (всегда) неправильный! Вы должны искать свой собственный:

 keytool -exportcert -alias <your-alias> -keystore <path-to-keystore> -list -v 

Новый идентификатор клиента моего (правильно) связанного приложения выглядел как 89xxxxxxxx73-2u6mXXXXXXXXXXXXXXXXXXX8903.apps.goo... , а не только 12 цифр по-прежнему. Я, наконец, понял, что вам нужно исключить тире и буквенно-цифровую информацию и использовать только 12 цифр.

Спасибо, что помогли мне!

Solutions Collecting From Web of "Службы Google Play Game – невозможно войти в систему"

Я исправил эту проблему.

В моем случае, когда я связал свое приложение (еще не опубликованное) с моим проектом Google Play Game Services, сертификат Fingerprint, автоматически выбранный Google Play, не был хорошим.

Чтобы исправить это, я удалил идентификатор клиента приложения в Google APIs Console , отсоединил мое приложение и повторно связал его с соответствующим сертификатом Fingerprint. Этот отпечаток отображается при экспорте вашего приложения в Eclipse (если ваш плагин ADT обновлен).

Надеюсь, поможет.

После долгих и болезненных двухнедельных попыток решить эту проблему я создал для меня шаги для решения этой проблемы и решил поделиться ею со всеми, кто страдает от одной и той же проблемы, это происходит без публикации игры. Он используется для тестирования. Когда опубликовано время, я поделюсь шагами, используемыми для публикации приложения, и убедитесь, что он работает с сервисом игры в Google.

Обратите внимание, что все, что я пытался сделать, это войти в систему с помощью кнопки входа в Google без каких-либо действий относительно того, что должно произойти после ее подписания, также обратите внимание, что я использовал BaseGameUtils из примера Google Play в качестве библиотеки, и моя IDE выбора Чтобы получить все это было Eclipse.

Ниже приведены шаги один за другим с использованием eclipse:

1-import BaseGameUtils как библиотека в рабочем пространстве eclipse, убедитесь, что после импорта не возникает ошибки. Если произошла ошибка, выполните следующие действия:

A-щелкните правой кнопкой мыши на проекте BaseGameUtil в проводнике проекта

B-Щелкните по пути сборки Java

C-Click добавьте внешние банки оттуда, перейдите к местоположению вашего SDK и найдите Google-Play-services.jar

D-выберите его и нажмите ok —> вы должны увидеть банку, добавленную в окне JARs и папок классов.

E-Перейдите на вкладку «Заказ» и «Экспорт» в правой части библиотек и убедитесь, что «Android private libraries» и «Android Dependancies» отмечены также, чтобы выбрать google-play-services.jar.

2. Теперь убедитесь, что вы правильно ссылаетесь на импортированную BaseGameUtility в приложении, которое хотите использовать: «Вы можете создать простое приложение-приложение hello для проверки этого», поэтому теперь мы будем ссылаться на BaseGameUtility в глобальном приложении hello следующим образом:

(Важно, чтобы оба мира привет и BaseGameUtil находятся на одном диске, два диска не будут работать)

A-right щелкните по приветствующему мировому приложению в правой части в проводнике проекта

B-клик по пути сборки Java

C-Щелкните по библиотекам

D – добавьте поддержку android support-v4, если необходимо, из внешнего или внутреннего источника (не обязательно)

E- добавьте базовые игры utils .jard, щелкнув по добавлению папки класса -> затем выберите BaseGameUtilProject — Затем выберите папку / bin – это должно импортировать ее в ваше приложение

F-add google-play-services.jar из внешнего источника также при необходимости

G-in «order and export» убедитесь, что у вас есть следующие выбранные —> «Частные библиотеки Android, Android-зависимости, BasegameUtils.jar, GooglePlayGameServices.jar» вместе с обычными SRC и GEN, которые должны быть выбраны по умолчанию.

3- теперь в вашем java-файле helloworld.java убедитесь, что ваш основной экран имеет все необходимые импорты, а затем расширяет BaseGameUtil и гарантирует, что проект реализует ViewOnClickListener.

4- Редактируйте манифест андроида, чтобы включить следующее:

  <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" /> 

а также

 <uses-permission android:name="android.permission.INTERNET"></uses-permission> 

5- убедитесь, что у вас есть файл ids.xml на вашем ресурсе, чтобы добавить свой идентификатор приложения после его создания.

 <string name="app_id"></string> 

Вы можете оставить его пустым, так как позже вам придется поместить в него идентификатор приложения

6-скопируйте отладочный ключ, который у вас есть на вашей Eclipse IDE, прежде чем добавлять это приложение в консоль разработчика. Делая это в затмении, происходит следующим образом:

A-click на Window b- выберите android c-Click build d- скопируйте отпечаток SHA1 и сохраните его, чтобы использовать его при создании своего приложения в консоли разработчика.

Создайте свою игру в консоли разработчика и используйте SHA1, полученный с шага 6.

8 – поместите идентификатор приложения в файл ids.xml, выделенный на шаге 5

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

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" **package="com.helloword.check"** android:versionCode="1" android:versionName="1.0" > 

10- По завершении убедитесь, что appilication в консоли разработчика соответствует SHA1, который назначается в консоли разработчика, используя keytool. Это тот шаг, который занял у меня 2 недели, чтобы выяснить

A-найдите приложение APK из папки bin вашего проекта hellow world и скопируйте его в другое место, чтобы проверить его идентификатор с помощью ключевого инструмента позже

B-locate your keytool -> обычно находится под папкой JAVA вашего компьютера, в моем случае это было в папке C: \ Program Files \ Java \ jdk1.7.0_09 \ jre \ bin

C- Извлеките apk в временном месте

D-выполните следующую команду

Keytool -printcert -file "TempLocation \ Meta-INF \ CERT.RSA"

Вы получите MD5 вместе с SHA1 и SHA256

Убедитесь, что SHA1 соответствует одному в консоли разработчика.

11- Вот как проверить SHA1 с консоли разработчика,

Перейти к сервисам игры

B – щелкните имя игры в нашем случае hellowWorld

C- Прокрутите вниз до "API Console Project"

D- Вы должны увидеть, что эта игра связана с проектом консоли API под названием helloworld "

E- helloworld должен быть гиперссылкой, нажмите на нее,

F- это откроет консоль Google APis

G- в APconsole щелкните по API Access

H-прокрутите вниз до «Идентификаторы клиентов для установленного приложения», вы должны увидеть, что SHA1 гарантирует, что он будет таким же, как тот, который был создан из keytool ранее на шаге 10. (Если они не совпадают, вам нужно удалить игру с консоли разработчика и воссоздать ее с помощью правильного SHA1) «убедитесь, что вы не изменили SHA1 из консоли API Google, это вызовет проблемы.

I-Убедитесь, что имя пакета – это одно и то же имя пакета в вашем манифесте Android, поэтому я подразумеваю, что везде упоминается имя пакета, гарантируя, что оно совпадает с именем в «Идентификатор клиента для установленных приложений» (в моем случае это не соответствовало тому, что указано в строке 4 моего манифеста)

И именно это вы должны теперь иметь возможность протестировать свой знак, используя сервис игровой игры Google

Была та же проблема. Мое решение состояло в том, чтобы дважды связать один и тот же пакет в Консоль Dev, первый с использованием отпечатка SHA1 из моего собственного сертификата, а второй – с помощью моего отладочного ключа SHA1.

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

На шаге 3. Сгенерируйте идентификатор клиента OAuth 2.0, в котором он дает следующее предупреждение:

Предупреждение. Не открывайте Консоль API Google напрямую и вручную добавляйте идентификаторы клиентов на эту страницу. Это может привести к ошибкам при отправке запросов к игровым сервисам.

Таким образом, мой опыт состоял в том, что вам необходимо следовать руководству религиозно: настройка игровых сервисов Google Play с помощью консоли разработчика Google Play

Я много боролся с этой проблемой. Изменения в консоли API Google только нарушают идентификатор клиента OAuth – не трогайте его. Единственным решением для меня было создание нового игрового сервиса и подключение подписанного apk с нормальным (не отладочным) ключом, потому что, как только вы добавите apk с любым ключом, если вы попытаетесь снова добавить его с помощью другого ключа, это не сработает. Удаление игры не будет работать, google по-прежнему будет помнить имя пакета. Вы можете попытаться изменить имя пакета apk (конечно, это не лучшая идея) и повторите попытку, но это не всегда работает.

Поэтому, как только у вас возникнет эта проблема, лучшим решением будет изменение имени пакета apk и создание нового игрового сервиса – это, безусловно, всегда работает, и, пожалуйста, будьте осторожны с именем службы игры – не делайте это с именем, которое вы использовали ранее – это Все испортит.

Из нескольких проблем, с которыми я столкнулся в этой услуге, самое смешное в том, что теперь у меня есть apk, связанный с игровым сервисом, но он не указан в нем, и я не могу добавить его из-за ошибки: этот идентификатор клиента глобально уникален и уже используется – Я думаю, что идентификатор клиента не является идентификатором OAuth – я не могу его удалить – такого варианта нет, и, возможно, это основная проблема того, что мы получили здесь.

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

Читайте это для получения дополнительной информации:

https://developers.google.com/games/services/console/enabling#c_specify_client_id_settings

Примечание. Для Android вам не нужно включать полный идентификатор клиента в приложение, так как оно будет автоматически выведено из идентификатора приложения.

Я испытываю подобные проблемы, и я вижу, что эта страница была обновлена ​​30 мая 2013 года:

https://developers.google.com/games/services/android/troubleshooting

Это может помочь некоторым из нас.

Парень: Вы правильно настроили свою учетную запись для тестирования?

См. https://developers.google.com/games/services/console/testpub#enabling_accounts_for_testing.

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

Это был недостающий шаг для меня. После этого я больше не получал этих ошибок:

E / GameAgent: невозможно получить приложение 1P 547xxxxxx457 из сети
E / CheckGameplayAcl: невозможно загрузить метаданные для игры

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

Более подробную информацию см. В параграфе «Другие причины» при поиске и устранении неисправностей https://developers.google.com/games/services/android/troubleshooting.

Подход Хартока также помогал мне, однако «Возможно, вам придется удалить проекты с консоли google api». Этого звука достаточно, но это не так, по крайней мере, не для меня. У Google мало возможностей «восстановить» в API-консоли. Вы можете просто восстановить все, это означает, что они хранят ваши ключи SHA-1, но помечены как удаленные (?). То, что сработало для меня снова использовать отладочный ключ, который также был заблокирован, заключается в том, что я удалил все свои тестовые проекты и вручную удалил все ключи OAuth в опции «Доступ к API» из всех этих удаленных проектов, после чего я мог использовать свой отладочный ключ еще раз. Надеюсь, что кто-то поможет …

Вот контрольный список:

  1. Сначала проверьте, не были ли вы глупые ошибки или несоответствия, описанные на https://developers.google.com/games/services/android/troubleshooting
  2. Общей проблемой является конфликтный идентификатор ресурса «app_id», например, если вы используете SDK для Facebook, он может использовать ключ с тем же именем, поэтому дважды проверьте это и переименуйте другие, если вы найдете конфликты. (Я бы сохранил «app_id», выделенный для этого проекта, поскольку библиотека BaseGameUtils ссылается на него как « app_id » в некотором исходном коде, который я проверил).

  3. Хотя документы относятся к « Консоли Google Developers Console », вы не играете умные и пытаетесь добавить идентификатор клиента оттуда. Хотя, в конце концов, идентификаторы клиентов также будут там. Есть небольшая заметка, которую можно легко прочесть:

Вы должны создать новый идентификатор клиента в консоли разработчика Google Play , а не в Google Developers Console .

  1. Поэтому на основе этой заметки создайте свои идентификаторы клиентов только из консоли разработчика Google Play , другими словами, «Добавление связанного приложения». Таким образом, вы обычно создаете 2 связанных приложения для использования «debug.keystore» (используя тот же пакет, но с разными отпечатками пальцев) и другое «связанное приложение» для хранилища ключей «production», но используя тот же пакет, но с разными отпечатки пальцев.

Я думаю, что это охватывает все, большинство людей могут оказаться в ловушке, так как все отлично выглядит в Google Developer Console , но на самом деле они, вероятно, пропустили шаги 3 и 4 выше.

Все еще не работает для меня. Google выполнил полную перезагрузку моих игровых сервисов Google Play и шаг за шагом осуществил интеграцию. Еще сказал, что у меня нет зарегистрированного идентификатора клиента Google. Довольно неудача, учитывая 3 года, чтобы сделать Google Play Games Services.

Последняя вещь, учетная запись с @ googlemail.com не распознана, вы не можете экспортировать идентификаторы достижений (вам нужно скопировать прошлое html, когда у вас 40 достижений, это довольно боль).

05-22 00: 35: 57.914: I / dqi (11166): исключение I / O (org.apache.http.NoHttpResponseException), обнаруженное при обработке запроса: целевой сервер не смог ответить 05-22 00: 35: 57.914: I / Dqi (11166): запрос повторной попытки 05-22 00: 35: 58.135: E / Volley (11166): [506] il.a: Неожиданный код ответа 403 для https://www.googleapis.com/games/v1/ Игроки / меня 05-22 00: 35: 58.195: E / Volley (11166): [506] il.a: Неожиданный код ответа 403 для https://www.googleapis.com/games/v1/players/me 05- 22 00: 35: 58.205: E / SignInIntentService (11166): доступ не настроен 05-22 00: 35: 58.205: E / SignInIntentService (11166): aol 05-22 00: 35: 58.205: E / SignInIntentService (11166): At ajy.a (SourceFile: 108) 05-22 00: 35: 58.205: E / SignInIntentService (11166): at abm.a (SourceFile: 213 05-22 00: 35: 58.205: E / SignInIntentService (11166): at Abm.a (SourceFile: 194) 05-22 00: 35: 58.205: E / SignInIntentService (11166): at aav.a (SourceFile: 486) 05-22 00: 35: 58.205: E / SignInIntentService (11166): at Aqu.a (SourceFile: 221) 05-22 00: 35: 58.205: E / SignInInten TService (11166): at com.google.android.gms.games.service.GamesSignInIntentService.onHandleIntent (SourceFile: 343) 05-22 00: 35: 58.205: E / SignInIntentService (11166): at android.app.IntentService $ ServiceHandler .handleMessage (IntentService.java:65) 05-22 00: 35: 58.205: E / SignInIntentService (11166): at android.os.Handler.dispatchMessage (Handler.java:99) 05-22 00: 35: 58.205: E / SignInIntentService (11166): at android.os.Looper.loop (Looper.java:137) 05-22 00: 35: 58.205: E / SignInIntentService (11166): at android.os.HandlerThread.run (HandlerThread.java: 60) 05-22 00: 35: 58.205: E / LoadSelfFragment (15328): Невозможно выполнить вход – приложение не имеет зарегистрированного идентификатора клиента

В моем случае я забыл изменить имя пакета в AndroidManifest.xml; это все. Я думаю, сначала это нужно проверить.

Попробуйте следующее:

  1. Зарегистрируйте свое приложение как тестирование (если оно еще не опубликовано) (на сайте разработчика Google).
  2. Сделайте несколько идентификаторов пользователей и зарегистрируйте их там.
  3. Теперь напишите свой идентификатор SHA1.
  4. Запишите свой идентификатор разработчика, созданный Google.
  5. Поместите его в соответствующее место в своем приложении.

Если вы уже это сделаете, то выполните этот самый важный шаг.

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

Идентификатор версии! Мне пришлось изменить свой идентификатор версии на значение, большее, чем моя последняя версия. Вдруг я могу войти!

Для меня я использовал Sample (Button Clicker) и маскировал его как одно из моих выпущенных приложений. Я, вероятно, все еще должен был делать все изменения SHA1, так как казалось, что он выключен, но изменение, которое подсказывало мне в пользу, обновляло идентификатор версии до 3, поскольку образец начинается с 1, а мое реальное / опубликованное приложение было установлено на 2.

Для меня отладка подписи работает, не подписана, / Можем ли мы связаться с Google об этом? Я потратил весь день на это: / Я получаю «нет связанного приложения, связанного с этим идентификатором клиента», но оба они находятся в Google Api под правильным проектом.

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

Пожалуйста, проверьте подключение к Интернету, когда приложение запущено. Если вы не подключены, это сообщение об ошибке регистрируется.

Благодаря Сачину Чавану, наконец, он решил, что проблемы были:
1. В игре Google произошел неправильный шаг 1.
2. Попытался добавить его из консоли разработчика Google – не работал.
Посмотрев сообщение Sachin Chavan и ссылку, я видел, что вы можете связать одно и то же приложение с Google Play Console несколько раз, поэтому я взял псевдоним SHA1 с:

 keytool -exportcert \ -alias <your-key-name> \ -keystore <path-to-production-keystore> \ -list -v 

И отладка SHA1 с:

 keytool -exportcert \ -alias androiddebugkey \ -keystore <path-to-debug-keystore> \ -list -v 

Я связал приложение еще два раза, первый раз, когда я ввел псевдоним SHA1, а во второй раз отладочный SHA1 , после многого из ошибок, который решил его (этапы выделены жирным шрифтом).