我对使用 Flutter 框架开发的 CrossPlatform Mobile 应用程序使用 Firebase 身份验证和 google_sign_in。
问题:
Platformexception(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null)
注意事项:
到目前为止我尝试过的:
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
shrinkResources false
}
}
我知道这个错误很可能与 SHA 密钥有关,所以如果有人可以解释应该添加哪些 SHA1 和 SHA256 密钥以及我应该如何生成它们,那也很好,只是为了完全排除这种可能性。我也将不胜感激任何其他见解。
Google 默认使用 自动应用程序签名,这意味着您的 SHA 密钥将在您上传到 Google Play 后发生变化。
要查找新密钥,请转至 Play 控制台 > 设置 > 应用完整性 > 应用签名(或单击此链接:https://play.google.com/console/developers/app/keymanagement)。
您会在那里找到三个密钥:MD5、SHA-1 和 SHA-256。
现在您只需在 Firebase 控制台中的 Project settings > General 下添加这些键即可。
使用 iOS,您无需关心添加 sha 键
对于 Android,我认为大多数情况下您忘记添加 sha 应用程序签名密钥
当您运行项目(调试和发布模式)时,就像您将 APK 安装到设备上一样,在这种情况下添加本地密钥库(也称为上传密钥库 - 您自己生成的密钥)就可以了
但是当您从 Google Play(或内部测试或通过 Google Play 进行内部测试或其他任何方式)安装应用程序时,谷歌使用 应用程序签名密钥 来签署您的应用程序(而不是您的上传密钥库)并将其分发给用户,因此缺少添加此 sha 密钥会导致错误
-> 解决方案:在仪表板上找到您的应用程序签名密钥,如下图所示,并将其添加到您的配置中