Мне очень нужна помощь в решении этой проблемы, с которой я сталкиваюсь последние несколько дней.Я много раз исследовал эту проблему и перепробовал все решения, приведенные в темах на этой платформе и в других местах, но я не могу заставить ее работать.
Я пытаюсь интегрировать службу Google Play в свою игру, потому чтоЯ хочу использовать их сервис облачного сохранения.Я использую Unity 2017.4.20f2 для сборки игры и загрузил эту версию библиотеки игр Google https://github.com/playgameservices/play-games-plugin-for-unity
Текущая ситуация: при попытке войти в игру с помощью кнопки,Появляется зеленое окно входа в Google, и он пытается войти в систему с моей учетной записью по умолчанию (нет выбора, он пытается войти сразу).После этого произойдет сбой входа в систему, и я попаду в случай обработки ошибок моего приложения (с отображением сообщения об ошибке).
LogCat показывает следующую ошибку:
<code>03-05 13:02:45.019: E/SignInAuthenticator(6500): **** APP NOT CORRECTLY CONFIGURED TO USE GOOGLE PLAY GAME SERVICES
03-05 13:02:45.019: E/SignInAuthenticator(6500): **** This is usually caused by one of these reasons:
03-05 13:02:45.019: E/SignInAuthenticator(6500): **** (1) Your package name and certificate fingerprint do not match
03-05 13:02:45.019: E/SignInAuthenticator(6500): **** the client ID you registered in Developer Console.
03-05 13:02:45.019: E/SignInAuthenticator(6500): **** (2) Your App ID was incorrectly entered.
03-05 13:02:45.019: E/SignInAuthenticator(6500): **** (3) Your game settings have not been published and you are
03-05 13:02:45.019: E/SignInAuthenticator(6500): **** trying to log in with an account that is not listed as
03-05 13:02:45.019: E/SignInAuthenticator(6500): **** a test account.
03-05 13:02:45.019: E/SignInAuthenticator(6500): ****
03-05 13:02:45.019: E/SignInAuthenticator(6500): **** To help you debug, here is the information about this app
03-05 13:02:45.019: E/SignInAuthenticator(6500): **** Package name : com.bunjes.kjell.interal.test.omega
03-05 13:02:45.020: D/SamsungAlarmManager(4867): Cancel Alarm calling from uid:10029 pid :6009 / op:PendingIntent{fceca68: PendingIntentRecord{465fe38 com.google.android.gms broadcastIntent}}
03-05 13:02:45.022: E/SignInAuthenticator(6500): **** Cert SHA1 fingerprint: [RIGHT HERE IT SHOWS THE SHA1, WHICH MATCHES THE ONE FROM MY KEYSTORE]
03-05 13:02:45.022: E/SignInAuthenticator(6500): **** App ID from manifest : 367764999844
03-05 13:02:45.022: E/SignInAuthenticator(6500): ****
03-05 13:02:45.022: E/SignInAuthenticator(6500): **** Check that the above information matches your setup in
03-05 13:02:45.022: E/SignInAuthenticator(6500): **** Developer Console. Also, check that you're logging in with the
03-05 13:02:45.022: E/SignInAuthenticator(6500): **** right account (it should be listed in the Testers section if
03-05 13:02:45.022: E/SignInAuthenticator(6500): **** your project is not yet published).
03-05 13:02:45.022: E/SignInAuthenticator(6500): ****
03-05 13:02:45.022: E/SignInAuthenticator(6500): **** For more information, refer to the troubleshooting guide:
03-05 13:02:45.022: E/SignInAuthenticator(6500): **** <a href="http://developers.google.com/games/services/android/troubleshooting" rel="nofollow noreferrer">http://developers.google.com/games/services/android/troubleshooting</a>
- Моя учетная запись Gmail, которую я использую для Google Play, совпадает с той, которую я использую для разработки.Он также указан как «Тестер» в моем списке тестеров в консоли Google Play.
- Упомянутый в сообщении об ошибке SHA1 совпадает с тем, который я настроил в консоли API Google
- Имя пакетаупомянутое в сообщении об ошибке совпадает с указанным в консоли Google Play
- Сервис игры опубликован
Я пробовал решения, упомянутые в других темах (обмен кодами SHA1) и т. д.в предыдущих попытках, но я все еще получал ту же ошибку в LogCat.Итак, я попробовал снова с нуля и отметил все шаги, которые я предпринял, чтобы добраться до того места, где я сейчас нахожусь, на котором я думаю, что он должен работать (но это не так).
Примечание.Идентификаторы в консоли API Google
Создание и загрузка приложения в Google Play
- Создание приложения в Unity с производственным хранилищем ключей (идентификатор xml и веб-клиента в Window> Google Play Services>Настройка> Настройка Android ... задаются с помощью xml и идентификатора веб-клиента с предыдущей попытки)
- Создание нового приложения в консоли Google Play
- Создание выпуска для внутренней дорожки
- Позвольте Google создавать и управлять ключом подписи моего приложения (рекомендуется)
- Загрузить .apk, встроенный в шаг 1)
- Создать рейтинг для игры
- Заполнитьв деталях «Цены и взносы»
- Проверка подписи приложений: SHA1 «Загрузить сертификат» соответствует SHA1 из хранилища ключей, которое я использовал;«Сертификат подписи приложения» содержит другой SHA1
- Перейдите к «Выпуски приложения» и управляйте тестерами для приложения.Включите список созданных мной тестеров, в который входит мой gmail, который я также использую в качестве консоли Google Play в соответствии с
- Редактировать выпуск -> Обзор -> Начать развертывание для внутреннего тестирования В правом верхнем углу приложение теперьимеет статус «Ожидание публикации»
Настройка игрового сервиса Google Play для приложения
- Перейдите в раздел «Игровые сервисы» -> Добавить новую игру
- Выберите «Я пока не использую API Google в своей игре»
- На вкладке «Сведения об игре» я выбираю «Сохраненные игры», загружаю значок и сохраняю изменения
- Консоль APIпоказывает гиперссылку на мой созданный проект (пока нет учетных данных, созданных в проекте)
- Перейдите на вкладку «Связанные приложения»
- Выберите «Android»
- ПодИмя пакета Я выбираю имя пакета из игры, которую я создал и зарегистрировал в консоли Google Play
- Нажмите «Сохранить и продолжить»> Нажмите «Авторизовать ваше приложение сейчас»
- Показанный код SHA1 не соответствуетсовпадают с тем из моего хранилища ключей.Итак, я меняю код на тот, который находится в моем хранилище ключей, и нажимаю «подтвердить»
Обновление идентификатора клиента в Unity
- В теперь настроенном игровом сервисе Google Play,перейдите на вкладку «Достижения»
- Создать тестовое достижение
- Нажмите «Получить ресурсы» на вновь созданном достижении и скопируйте код XML
- Откройте Unity и перейдите кОкно> Google Play Игры> Настройка> Настройка Android…
- Вставьте код XML из достижения
- Перейдите на вкладку «Связанные приложения» в игровом сервисе Google Play и выберите связанное приложение
- Скопируйте идентификатор клиента OAuth2
- Вставьте идентификатор клиента OAuth2 в качестве идентификатора клиента в «Идентификатор веб-клиента (необязательно)» и нажмите «Настройка»
- Появится сообщение «Службы Google Play настроены успешно»
Построениеновый APK и загрузите его в Google Play Console
- В Unity перейдите в «Файл»> «Настройки сборки»> «Настройки игрока»> «Другие настройки» и увеличьте «Bundle Version Code» на 1
- Build apk
- Вернитесь в консоль Google Play и выберите приложение
- Перейдите в «Управление релизами»> «Релизы приложений»> «Внутренний тестовый трек»> «Управление»> «Создать релиз»
- Загрузите новый файл .apk с исправленным кодом XML и новым идентификатором веб-клиента
- Нажмите «Сохранить»> «Обзор»> «Начать развертывание для внутреннего теста»
Опубликовать сервис игры
- Перейти к«Игровые сервисы»
- Выберите игровой сервис, созданный ранее
- Перейдите в «Публикация»> Добавьте недостающую информацию> Нажмите «Опубликовать игру»> Нажмите «Опубликовать сейчас»
- Дождитесь публикации Игрового сервиса
-> Проверить вход в систему -> Ошибка входа в систему;Ошибка, о которой я писал выше, возникает в LogCat
. Я действительно не знаю, что еще делать.Мы ценим каждый намек!
С наилучшими пожеланиями