我搜索并尝试了几乎所有在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 回答
您的代码没有错 .
显然,谷歌已经在谷歌播放开发者控制台中引入了一个名为“应用程序签名”的东西 .
根据this answer(对我有用!),你必须在Google Developer Console中进入发布管理>应用程序签名 .
在那里,您会看到“应用程序签名证书”和“上载证书” . 应将SHA-1和调试SHA-1添加到Firebase控制台 .
我曾经遇到过同样的问题 . 这是因为我正在使用其他一些OAuth2.0客户端 .
这是你应该做的:
使用oauth2.0 id,您可以找到此键的值
打开你的google-services.json
确保在firebase常规设置中添加了发行版和调试密钥的SHA1指纹,并使用更新的.json文件 .
.