我使用firebase开发了一个简单的Android应用程序,并已登录谷歌设施。一切都很好,直到我决定创建新的签名APK。在使用调试密钥时,我能够正确创建Google凭据,它创建了android和Web客户端ID,如屏幕截图所示 Credentials screenshot with debug key
根据google文档,我们需要在创建GoogleSignInOptions
对象时传递Web客户端ID。现在我决定创建实际签名的APK。它生成了新的SHA1指纹。当我尝试使用这个新的SHA1指纹创建凭据时,它只是创建Android客户端ID而不是Web客户端ID,如此屏幕截图所示
Credentials screenshot with release fingerprint
我的问题是,如何使用新密钥创建新凭据,因为登录失败了这个Android客户端ID?
解决方案:
我们可以通过创建新的Google控制台项目来解决这个问题,或者只是通过从控制台凭据屏幕更新现有项目的签名来突出显示here
答案 0 :(得分:0)
据我所知,您不能在google developer api控制台上拥有2个与相同包名相关联的应用程序。
转到:https://developers.google.com/identity/sign-in/android/start-integrating并向下滚动到"配置项目"按钮。
通过向导创建新应用程序。作为替代方案,您可以通过https://console.developers.google.com/apis/credentials
执行此操作此时您将需要您的应用程序包名称和调试/生产签名密钥SHA-1。找到用于签署应用程序的密钥,并通过终端使用:
keytool -exportcert -alias key_alias -keypass key_pass -keystore location/file.jks -storepass store_password -file myKey.crt -rfc
接下来是:
keytool -printcert myKey.crt
这会将所有哈希值打印到终端,包括SHA-1,然后您可以将其复制到我们上面提到的向导中。
您正在寻找类似:0C:F5:85:40:F3:1B:42:A2:EB:DC:FD:CA:12:6F:G5:3D:0B:3C:32:21
确保在不再使用/需要它时删除myKey.crt ...
注意:为了获得调试构建哈希值,您不需要使用keytool。只需在Android工作室中打开gradle选项卡 - >任务 - > android - > signedReport并双击它并打开gradle控制台输出并搜索SHA-1
向导创建了您的新凭据后,应该同时包含OAuth客户端和Web客户端,您可以下载credentials.json并将其放在您的应用程序文件夹中
AppName/app/credentials.json
如果您有调试凭据,它们将无法在发布的签名版本上运行,反之亦然。我最近遇到了这个问题并花了很多时间,所以如果这可以帮助别人,我会非常高兴:)