- 创建了一个使用react-native-google-signin使用Google Login登录的应用程序
- 创建了一个密钥库,用于对我的应用程序进行签名,如此处所述
- 已签署我的应用并上传到谷歌应用商店
- 当我被问及是否要选择加入
Google Play App Signing
时,我同意
了
- 当我被问及是否要选择加入
- 如果我尝试登录我的应用程序(从Play商店下载),我会收到错误
messsage: DEVELOPER_ERROR
,error code: 10
注意 1:我的应用不使用 Firebase
注意2:如果我将apk直接安装到我的设备中,登录似乎可以正常工作
我确定问题与应用程序如何使用Google Play应用签名进行签名有关,但我无法隔离问题
更新:
- 从这里下载了
google-services.json
并将其添加到/android/app
下,现在如果我从发布管理页面下载它并手动安装它,该应用程序就可以运行。如果我直接从谷歌Play商店安装它,仍然不起作用。
这很简单,转到您上传已签名APK的Play商店帐户。 选择您的应用,然后转到">发布管理"部分,然后转到"应用签名"。
复制应用签名证书的 SHA1 密钥。
转到此链接 https://developers.google.com/identity/sign-in/android/start-integrating
单击"配置项目"按钮
选择你的应用,选择"Android"、"应用你的应用包名称",然后粘贴 SHA1 证书
然后单击"创建"。就是这样。
现在,您可以在应用中使用谷歌登录
解决方案:
- 问题是在生成
google-services.json
时,需要提供App signing certificate
SHA-1 certificate fingerprint
;我提供了Upload certificate
的SHA-1 certificate fingerprint
这就是为什么它不适用于生产的原因。 - 实质上,在凭据页面中,您需要为 Android 创建两个 oauth 客户端 ID(一个带有
App Signing certificate
,一个带有Upload certificate
和一个类型为web
的 oauth 客户端 ID,在使用react-native-google-signin
时,您需要指定webClientId
。
您在调试模式下为应用添加了 sha-1 密钥,届时您将能够在应用中进行 Google 登录。 但随着应用投入生产,它需要 sha-1 密钥才能生产。 并且您需要在Firebase控制台上添加。 您可以检查您的 Firebase 控制台并检查安卓应用。
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
上面的 commad 有助于为调试版本创建 sha-1 密钥。
您需要为生产 sha-1 提供签名的密钥库文件路径。 这将通过命令完成
keytool -exportcert -list -v -alias <your-key-name> -keystore <path-to-production-keystore>
您只需要为已发布的apk提供密钥库文件的特定路径。
昨天我遇到了同样的问题。
谷歌在Playstore发布控制台中发布了一个新的签名服务,谷歌将使用他的密钥库登录您的应用程序。签名后,它将为您提供一个新的SHA,您必须将其添加到您的Fireenter图像描述中。查看图像以更好地理解