首页 文章

Google登录会生成statusCode“Developer_Error”

提问于
浏览
2

我搜索并尝试了几乎所有在Google Developers网站上发布的内容,Stack Overflow和其他有用的博文 . 但没有什么对我有用 .

我的应用已成功登录Google帐户,但当我在应用中进行了一些基本更改(根本与Google API无关)并在Playstore上上传了更新后的APK时, Google Sign-In 之后无效 .

当我从Android Studio运行应用程序时(使用 debug build-variant和 release build-variant),登录就像魅力一样 . 然后我生成 signed-apk 并将其上传到Play商店 . 当我从Play商店安装应用时,它不会登录并给出 statusCode=DEVELOPER_ERROR

我在Google Cloud Console上创建了该项目,在该项目中为Android创建了OAuth 2.0客户端ID,并在该客户端ID中添加了 SHA1 (为 release 生成) . 然后我下载了 google-services.json 文件并将其放在我项目的 app 文件夹中 .

我似乎什么都不错 . 但登录仍然无法正常工作 . 请告诉我这是什么问题 .

P.S . :Firebase也集成到我的Android项目中 .

这是 onCreate() 里面 GoogleApiClient 的设置代码

googleApiClient = new GoogleApiClient.Builder(this)
                .enableAutoManage(MainActivity.this, this)
                .addApi(Auth.GOOGLE_SIGN_IN_API, signInOptions).build();
googleApiClient.connect();

这是单击“登录”按钮时调用的方法 .

public void signIN() {
        Intent intent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
        startActivityForResult(intent, REQ_CODE);
}

这是来自onActivityResult()的代码

if (requestCode == REQ_CODE) {
            GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
            if(result.isSuccess()){
                GoogleSignInAccount account = result.getSignInAccount();
                //Do something
            }else{
                Toast.makeText(getApplicationContext(), "Unable to Sign in. Try again.", Toast.LENGTH_SHORT).show();
            }
            Log.d("GoogleResult", result.getStatus().toString());
}

2 回答

  • 2

    您的代码没有错 .

    显然,谷歌已经在谷歌播放开发者控制台中引入了一个名为“应用程序签名”的东西 .

    根据this answer(对我有用!),你必须在Google Developer Console中进入发布管理>应用程序签名 .

    在那里,您会看到“应用程序签名证书”和“上载证书” . 应将SHA-1和调试SHA-1添加到Firebase控制台 .

  • 0

    我曾经遇到过同样的问题 . 这是因为我正在使用其他一些OAuth2.0客户端 .

    这是你应该做的:

    使用oauth2.0 id,您可以找到此键的值

    打开你的google-services.json

    project-info > client > oauth_client[1] > client_info
    

    确保在firebase常规设置中添加了发行版和调试密钥的SHA1指纹,并使用更新的.json文件 .

    .

相关问题