使用 google for android 登录在发布 apk 中不起作用

Posted

技术标签:

【中文标题】使用 google for android 登录在发布 apk 中不起作用【英文标题】:Sign-in with google for android not working in release apk 【发布时间】:2016-06-04 08:27:39 【问题描述】:

我已在我的应用程序中添加了 Google 登录,并按照官方文档中的所有步骤使其工作。 一切正常,直到我为发布生成了一个签名的 apk。该应用无法登录,

Log.d(TAG, "handleSignInResult:" + result.isSuccess());

在 SignInActivity.java 的 handleSignInResult() 中给出的值为 false

我已在开发者控制台上注册了该应用,并为他们提供了 SHA1 密钥以供他们调试密钥以及发布密钥。我无法解决这个问题,也无法在文档中找到任何相关内容。

【问题讨论】:

在您的 google-services.json 文件中,包名(android 客户端)是否与您发布的 apk 的应用程序 ID 相同? 另外,您是否已下载google-services.json 文件并将其放入应用模块的根目录中? ***.com/questions/34264043/…的可能重复 @ElvisChweya 是的,所有这些都正确完成,并且可以在调试 apk 中使用。 【参考方案1】:

当您将 apk 上传到 Play 商店时,Play 商店会创建一个名为“应用签名证书”的新 SHA1 密钥。您获得该 SHA1 并保存在您的控制台或 firebase 帐户中(根据需要)。

新的 SHA1 将在您的 Play 控制台上的 Released Management->App Sigining 中找到。

当您使用 filename.jks 构建签名 apk 时,它的 SHA 与您的调试 apk 不同,请将这些由签名 apk 生成的 SHA 放入 Firebase 并更新它,然后再次从 firebase 下载 json 并从您的 android studio 覆盖现有 json .

在发布应用之前,您应该阅读Google Play launch checklist

完整的发布流程可以去here

【讨论】:

您的回答令人困惑,因为如果您想将 APK 上传到 Playstore,那么您需要使用密钥库进行签名。我们仅将密钥库文件 SHA1 值用于 firebase 或任何 3rd 方服务 在您在 Playstore 中发布您的 apk 后,在您将 playstore 生成的 SHA1 放入您的 firebase 帐户之前,它不会适用于您的 google 服务。 Firebase Debug SHA is different Release SHA is different(Signed APK) Playstore SHA is different。只有将 playstore SHA 放入 Firebase 设置后,您的 Firebase 服务才能工作。我遇到了这个问题,当我在 Playstore 上发布我的应用程序时,它不适用于 google 登录服务,要使其正常工作,您必须将 playstore 生成的 SHA1 放在 firebase 设置中。 @VinayagaSundar 谢谢。我只是从 Firebase 上的 Google Play App Signing 添加 SHA1 并在应用程序上更新 google_services.json。谢谢 @AmarIlindra 是的! 非常感谢,你拯救了我的一天@AmeyaSalagre【参考方案2】:

终于解决了。我在注册项目下的 Google Developers Console 中为我的发布密钥(.jks 文件)添加了 SHA1 密钥。 在 Android Studio 的左侧,项目视图下有一个 Build variables 选项。在那里,我将每个模块更改为release 模式(默认为debug 模式)。然后通过通常的方法创建签名的 APK,并运行应用程序。谷歌登录完美运行。

【讨论】:

在开发者控制台哪里添加SHA1密钥??你能给我确切的路径吗???以及如何找到 SHA1 密钥...帮助..紧急 对我来说..在工作室中它已经处于发布模式但仍然 handleSignInResult:false 来了..怎么办???有什么建议??? 转到你的开发者控制台console.developers.google.com,点击左上角的图标打开抽屉,点击API manager。转到 Socil API 下的 Google+ aAPI。启用它。单击抽屉左侧的凭据。如果您看到已添加任何凭据,请单击它们,在详细信息中您将看到一个用于添加 SHA1 的字段。否则,单击创建凭据 > OAuth 客户端 ID > 选择 Android。填写必要的详细信息并保存。 是的..我做到了,但仍然发出***.com/questions/36999751/…你能帮帮我吗??? 我们是否必须在android代码的某个地方添加这个键?清单???如果是在哪里??

以上是关于使用 google for android 登录在发布 apk 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 Google 登录按钮时不将 Google 帐户添加到 Android 手机

在 Android 应用中登录 Google 以使用 Cloud Endpoints 后端

我是不是需要 Firebase 才能在我的 Android 应用中使用 Google 登录? [复制]

使用 Google 登录无法在 Android 上运行(仅在 iOS 上) - Flutter

在开发阶段在 Android 上测试 google 登录

如何使用 Node 服务器验证 Android Google 登录