Google 登录不适用于 Android 的发布版本

Posted

技术标签:

【中文标题】Google 登录不适用于 Android 的发布版本【英文标题】:Google signin not working on release version of android 【发布时间】:2016-07-28 04:28:19 【问题描述】:

我当前的应用程序出现问题。 我的 OAuth2.0 SHA1 是正确的,并且是从发布版本的密钥库文件生成的。 我的问题是我每次在 onActivityResult 上都收到 resultCode = 0。 我打印出意图的价值并得到以下信息: googleSignInStatus=状态statusCode=INTERNAL_ERROR,分辨率=空 但是,如果我在调试模式下运行它,登录工作完美,对于这种情况,意图值是: googleSignInAccount=com.google.android.gms.auth.api.signin.GoogleSignInAccount@31976389]

有谁知道如何解决这个问题。 注意:我在某处发现了一篇他们建议将电子邮件和项目名称放在 OAuth 竞赛屏幕上的帖子;我已经试过了,还是不行。

【问题讨论】:

获取发布版本的 SHA1 密钥->在 api 控制台中添加 SHA1 密钥。欢呼 感谢您的回复。但正如我已经提到的,发布版本的 SHA1 密钥在 api 控制台中。 【参考方案1】:

显然首先检查您的发布 sha1 密钥是否正确。但这里的问题不同。我正在使用新的 google play 服务(即编译 'com.google.android.gms:play-services:8.4.0')。并且可以通过修改 GoogleSignInOption 对象来解决问题。 而不是:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                    .requestEmail()  
       .requestIdToken("YOUR_WEB_API_ID.apps.googleusercontent.com")
                    .build();

我用:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestScopes(new Scope(Scopes.PLUS_LOGIN))
                .requestScopes(new Scope(Scopes.PLUS_ME))
                .requestEmail()
                .build();

这解决了返回 statusCode=INTERNAL_ERROR 的错误。 然后这个 gso 对象可以用来创建 GoogleApiClient,如下所示:

 mGoogleApiClient = new GoogleApiClient.Builder(this)
                .enableAutoManage(this, this)
                .addApi(Auth.GOOGLE_SIGN_IN_API,gso)
               // .addApi(Plus.API, null)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
               // .addScope(Plus.SCOPE_PLUS_LOGIN)
                .build(); 

【讨论】:

对我来说,这是我使用调试 sha 发布我的应用程序的 sha1,然后我将生成并添加了发布 sha1 到我的服务器项目设置中,我准备好了。

以上是关于Google 登录不适用于 Android 的发布版本的主要内容,如果未能解决你的问题,请参考以下文章

上传到 Play 商店时,Google 登录不适用于应用

Google 登录不适用于 Play 游戏服务启用,但无需启用

C++Builder TWebBrowser 不适用于 Google OAuth 登录

Google API 密钥不适用于 Android

使用 Compose 导航不适用于 Android 上的 Google 地图

谷歌登录不适用于 Play Store 上的生产 apk。(在 Playstore 上发布 apk)