Flutter 应用程序 - 发布到 PlayStore 后 Google 登录不起作用

问题描述 投票:0回答:2

我对使用 Flutter 框架开发的 CrossPlatform Mobile 应用程序使用 Firebase 身份验证和 google_sign_in。

问题:

  • 当我按已发布应用程序上的登录按钮登录时,出现以下异常:
Platformexception(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null) 

注意事项:

  • 当我运行“flutter doctor -v”时没有看到任何问题
  • 当我从我的电脑在手机上运行它时,它在 Ios 和调试/发布模式下运行得很好,但发布的版本无法运行。 (颤动运行,颤动运行--释放)
  • 我使用谷歌提供的应用程序签名

到目前为止我尝试过的:

  • 我已经从 Play 商店的控制台添加了应用签名 SHA1 和 SHA256 密钥,并将上传和发布密钥从我的 upload-keystore.jks 添加到 Firebase 应用中
  • 我尝试重新创建我的 Firebase Android 应用程序,读取 google-service.json
  • 我已将此部分添加到我的 build.gradle 中以测试默认收缩是否是问题所在:
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
shrinkResources false
}
}

我知道这个错误很可能与 SHA 密钥有关,所以如果有人可以解释应该添加哪些 SHA1 和 SHA256 密钥以及我应该如何生成它们,那也很好,只是为了完全排除这种可能性。我也将不胜感激任何其他见解。

flutter google-play google-signin publish sha1
2个回答
3
投票

Google 默认使用 自动应用程序签名,这意味着您的 SHA 密钥将在您上传到 Google Play 后发生变化。

要查找新密钥,请转至 Play 控制台 > 设置 > 应用完整性 > 应用签名(或单击此链接:https://play.google.com/console/developers/app/keymanagement)。

您会在那里找到三个密钥:MD5、SHA-1 和 SHA-256。

现在您只需在 Firebase 控制台中的 Project settings > General 下添加这些键即可。


0
投票

使用 iOS,您无需关心添加 sha 键

对于 Android,我认为大多数情况下您忘记添加 sha 应用程序签名密钥

当您运行项目(调试和发布模式)时,就像您将 APK 安装到设备上一样,在这种情况下添加本地密钥库(也称为上传密钥库 - 您自己生成的密钥)就可以了

但是当您从 Google Play(或内部测试或通过 Google Play 进行内部测试或其他任何方式)安装应用程序时,谷歌使用 应用程序签名密钥 来签署您的应用程序(而不是您的上传密钥库)并将其分发给用户,因此缺少添加此 sha 密钥会导致错误

-> 解决方案:在仪表板上找到您的应用程序签名密钥,如下图所示,并将其添加到您的配置中

© www.soinside.com 2019 - 2024. All rights reserved.