Как устранить ошибку 12500 при использовании OAuth для Android? - PullRequest
0 голосов
/ 04 февраля 2019

Мне нужно, чтобы приложение Android получило ключ доступа к серверу с помощью OAuth для чтения событий Календаря Google.

Я уже

  • Использовал идентификатор клиента веб-приложения в моемПараметры входа в Google
  • Создание идентификатора клиента Android для приложения
  • Извлечение отпечатка пальца SHA1 из хранилища ключей, использованного для подписи приложения, и вставка его в идентификатор клиента Android вместе с именем пакета
  • Убедитесь, что signatureConfig в моем build.gradle ссылается на правильное хранилище ключей.

build.gradle

signingConfigs {
    all {
        storeFile file("../keystore.jks")
        storePassword "****"
        keyAlias "****"
        keyPassword "****"
        v2SigningEnabled false
    }
    environmenttest {
        storeFile file("../keystore.jks")
        storePassword "****"
        keyAlias "****"
        keyPassword "****"
        v2SigningEnabled false
    }
    environmentnewkey {
        storeFile file("../newkeystore.jks")
        storePassword "****"
        keyAlias "****"
        keyPassword "****"
        v2SigningEnabled false
    }
    environmentprod {
        storeFile file("../newprodkeystore.jks")
        storePassword "****"
        keyAlias "****"
        keyPassword "****"
        v2SigningEnabled false
    }
}

buildTypes {
    release {
        debuggable false
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        buildConfigField "String", "ENDPOINT", "some.endpoint.url"
        buildConfigField "String", "ENDPOINT_TYPE", "\"Prod\""
        manifestPlaceholders = [
                appIcon: "@drawable/icon"
        ]
        signingConfig signingConfigs.environmentprod
    }
    debug {
        debuggable true
        buildConfigField "String", "ENDPOINT", "some.endpoint.url"
        buildConfigField "String", "ENDPOINT_TYPE", "\"Test\""
        manifestPlaceholders = [
                appIcon: "@drawable/icon"
        ]
        applicationIdSuffix ".development"
        signingConfig signingConfigs.environmentnewkey
    }
}

Google для входа в код в Java

private static String GOOGLE_CONSOLE_CLIENT_ID = "XXXXXXXXXXXX-yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzz.apps.googleusercontent.com"; // This is a Web Application ID

GoogleSignInOptions gso = new 
GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestScopes(new Scope(GOOGLE_CALENDAR_SCOPE))
            .requestServerAuthCode(GOOGLE_CONSOLE_CLIENT_ID, true)
            .requestEmail()
            .build();

mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
mGoogleSignInClient.signOut();

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

...