Я попробовал все, и я застрял с этой проблемой в течение нескольких дней.Что бы я ни пытался, экран входа из Google Play открывается в приложении, но затем внезапно останавливается, и пользователь не входит в систему.
Перед тем, как поделиться кодом, я подведу итоги того, что я сделал:
- Импортированный плагин GPG для Unity, последняя версия, также пробовал более старые версии, но тот же результат.Я выполнил настройку, попробовал принудительное разрешение на jar resolver.
- Создана сборка, подписанная с хранилищем ключей
- Загружен подписанный APK на внутренний тестовый трек
- Ссылка GPG в playstore isправильно настроить
- Попытка установки приложения вручную и через playstore
- Создан новый проект для проверки только части входа в GPG, код, которым я поделюсь, будет для этого тестового проекта
- Попробовал изменить ключи SHA1 в консоли API, перепробовал все возможные комбинации установки APK (Playstore / manual) и ключа SHA1 (Signed, Upload)
- Добавил тестовые письма в тестовый трек себя и моегоколлега, и включил проверку этих писем.
Я надеюсь, что кто-то может мне помочь.Я больше ничего не могу найти в интернете и, похоже, сам не могу этого понять.Это единственное, что мешает нам опубликовать нашу первую игру.
Это весь код, который я использую для тестового приложения.Я добавил кнопку в сцену для входа в GPG и 1 текстовое поле для отображения строки состояния.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using GooglePlayGames.BasicApi.SavedGame;
using UnityEngine.UI;
public class ClickManagerScript : MonoBehaviour
{
public GameObject textField;
public void LogInClick()
{
PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder()
.EnableSavedGames().Build();
PlayGamesPlatform.DebugLogEnabled = true;
PlayGamesPlatform.InitializeInstance(config);
PlayGamesPlatform.Activate();
SignIn();
}
void SignIn()
{
//when authentication process is done (successfuly or not), we load cloud data
Debug.Log("Going to log in to GPG");
Social.localUser.Authenticate(success => { UpdateTextField(); });
}
void UpdateTextField()
{
Text text = textField.GetComponent<Text>();
if (Social.localUser.authenticated)
{
text.text = "Sign in succesfull";
}
else
{
text.text = "Sign in failed";
}
}
}