Я пытаюсь заставить игровые сервисы Play работать, и сейчас я пытаюсь просто войти в систему. И целых два дня я застрял на этапе аутентификации.
Я следил за документацией и попытался снова связать свое приложение с нуля. дважды проверил мои ключи SHA-1 как для отладки, так и для выпуска. (в Play Console есть два связанных приложения). также проверил, что в API Console все то же самое. Когда я проверяю результат попытки входа, я вижу: statusCode=SIGN_IN_REQUIRED.
Что я проверил или сделал:
- Ключи SHA-1
- Идентификатор приложения правильный и в манифесте
- Правильный пакет
- google-services.json загружен
- Связать приложение
- Создайте новое приложение в игровой консоли и новые ссылки
- Firebase и Crashlytics работают
- Включено тестирование пользователей
Из АПК:
Из консоли API:
Игровая консоль:
Тихий вход:
private void signInSilently() {
GoogleSignInOptions signInOptions = GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN;
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(context);
if (GoogleSignIn.hasPermissions(account, signInOptions.getScopeArray())){
GoogleSignInAccount signedInAccount = account;
Log.d("TEST_SILENT", "onComplete: " + signedInAccount);
} else {
final GoogleSignInClient signInClient = GoogleSignIn.getClient(context, signInOptions);
signInClient
.silentSignIn()
.addOnCompleteListener(
activity,
new OnCompleteListener<GoogleSignInAccount>() {
@Override
public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
if (task.isSuccessful()) {
GoogleSignInAccount signedInAccount = task.getResult();
Log.d("TEST_SILENT", "onComplete: " + signedInAccount);
} else {
Intent i = signInClient.getSignInIntent();
activity.startActivityForResult(i, 9001);
}
}
});
}
}
Интерактивный вход:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 9001) {
GoogleSignInResult res = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (res.isSuccess()) {
Log.d("ASD", "onActivityResult: " + res.getSignInAccount());
} else {
Log.e("Asd", "onActivityResult: " + res.getStatus());
}
}
}
Добавлен идентификатор приложения
<meta-data android:name="com.google.android.gms.games.APP_ID"
android:value="@string/app_id" />
Что бы я ни делал, я просто не могу войти в систему. И статус из logcat:
E/Asd: onActivityResult: Status{statusCode=SIGN_IN_REQUIRED, resolution=null}