Falha no login no Serviço de Jogo do Google Play

Eu tenho batido minha cabeça contra a parede por isso há vários dias. Apesar de ler muitas postagens descrevendo vários problemas / soluções para falhas de login no GPS, não consegui encontrar uma solução para o meu problema.

Em resumo, estou desenvolvendo um jogo no Android Studio usando a estrutura LibGDX e adicionei BaseGameUtils como uma biblioteca e adicionei todas as dependências necessárias etc.

Declaração do problema: Quando o jogo inicia, ele tenta se conectar ao GPGS, mas sempre responde com a mensagem 'Falha ao fazer login'. O logcat contém a seguinte mensagem:

01-03 19:37:41.744 6693-7436/? E/TokenRequestor: You have wrong OAuth2 related configurations, please check. Detailed error: UNREGISTERED_ON_API_CONSOLE
01-03 19:37:41.764 20609-20609/? I/SignInActivity: Transition from 6 to 11
01-03 19:37:41.764 20609-20609/? W/SignInActivity: onSignInFailed()...
01-03 19:37:41.764 20609-20609/? W/SignInActivity: Sign in failed during 6
01-03 19:37:41.764 20609-20609/? W/SignInActivity: ==> Returning non-OK result: 10002

De acordo comhttps://developers.google.com/android/reference/com/google/android/gms/games/GamesActivityResultCodes ...

public static final int RESULT_SIGN_IN_FAILED

Result code sent back to the calling Activity when signing in fails.

The attempt to sign in to the Games service failed.
For example, this might happen if the network is flaky,
or the user's account has been disabled, or consent could not be obtained.

Constant Value: 10002

Minha rede não é "esquisita" e não acredito que minha conta tenha sido desativada - outros jogos comerciais que eu instalei funcionam perfeitamente com o GPGS.

Eu assinei meu APK - depuração e lançamento (embora eu esteja trabalhando apenas com depuração nesse estágio). Adicionei o jogo ao Google Developer Console e o vinculei ao API Manager e criei o ID do cliente OAuth2. Na verdade, eu já fiz isso várias vezes, excluindo o jogo vinculado e recriando-o pensando que meu ID de cliente ou a impressão digital SHA1 estavam incorretas. A mensagem do logcat sugere que a configuração do OAuth2 está incorreta, mas verifiquei isso muitas vezes e tudo parece correto para mim. Qual é a melhor maneira de verificar a assinatura?

Estou testando um Samsung S7 físico no qual implanto diretamente do meu laptop. Meu Android Gradle tem os SigningConfigs necessários declarados, então acredito que meu jogo implantado deve ser assinado corretamente.

android {
signingConfigs {
    config {
        keyAlias 'mygame-key'
        keyPassword 'mypassword'
        storeFile file('path/to/my/keystore.jks')
        storePassword 'keystorepassword'
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.config
    }
    debug {
        signingConfig signingConfigs.config
        debuggable true
    }
}

No meu manifesto, tenho as linhas necessárias. Por exemplo. -

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id"/>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>

Originalmente, no AndroidLauncher, eu estava usando a classe GameHelper, mas descobri recentemente que isso está sendo preterido. Por isso, mudei meu código para usar o GoogleApiClient. O construtor é definido da seguinte maneira:

mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(Games.API).addScope(Games.SCOPE_GAMES)
            .build();

O código para os outros métodos foi obtido diretamente do aplicativo de exemplo TrivialQuest, por exemplo, -

@Override
protected void onStart() {
    Log.d(TAG, "onStart()");
    super.onStart();
    mGoogleApiClient.connect();
}

No entanto, apesar de usar o código do cliente da API do Google, isso não fez diferença.

Não tenho certeza do que mais fornecer aqui, mas entre em contato se precisar ver outras partes do código. Ficaria extremamente grato por qualquer sugestão de coisas a serem examinadas no código ou nos logs para obter uma pista melhor de por que isso está falhando.

Muito obrigado antecipadamente.

questionAnswers(2)

yourAnswerToTheQuestion