如何将SHA-1添加到安卓应用程序

126

我正在尝试在Firebase中创建一个动态链接,当我选择安卓应用时,它显示一个错误提示:"将SHA-1添加到此Android应用程序",我已经添加了凭证,但是我不确定如何"将SHA-1添加到应用程序"。

怎么做呢?


请查看此链接以从您的Android Studio获取SHA-1密钥,并将其添加到您的Firebase项目中:https://dev59.com/CF4c5IYBdhLWcg3wuMR7 - SripadRaj
1
我已经获取了SHA-1密钥,但是我不知道如何将它添加到我的Firebase项目中。 - John Sardinha
请查看 stackoverflow.com/a/67546584/11365488 以获取 Android Studio 4.2 的相关信息。 - Elfnan Sherif
#3 对我有效 --- https://www.devopsschool.com/blog/how-to-get-sha-1-key-in-android-studio-for-firebase/ - Akhilesh Sinha
20个回答

187

在Android Studio中生成SHA-1:

更改Firebase项目设置

点击添加指纹按钮


  1. 从右侧面板中选择Android Studio中的Gradle

  2. 选择您的应用程序

  3. 在任务->android->signingReport中

双击 signingReport.

如何获取SHA1指纹


您将在 "Gradle Console" 中找到SHA-1指纹

将此SHA-1指纹添加到Firebase控制台

添加SHA1指纹


4
在签名报告的输出中,请记得复制发布版和调试版的SHA1。 - humazed
3
嗯,花了我一些时间才找到“选择Gradle”,因为面板大小不对。 :)))) - dod_basim
2
Android Studio 3.3:在Gradle面板中单击大象图标,选择项目,在命令行中输入“signingReport”,然后单击确定。 - norbDEV
这个方法完全可行,但是Android Studio会自动将默认配置切换为创建签名报告而不是运行应用程序。提醒一下,如果在找到此值后运行应用程序出现问题,请注意。 - rob5408
1
对于任何搜索Gradle选项的用户,一个垂直倾斜放置的"Gradle"按钮位于窗口右侧。 - Ajay Stefin
显示剩余6条评论

178
如果您使用了 Google Play 应用签名,则需要使用来自 Google Play 的 SHA1,因为 Google 将使用其服务器上的密钥替换您的发布签名密钥。

输入图像描述


23
这需要更高的优先级。我完全没有意识到我的密钥只是用来上传,然后谷歌会自动重新签名。花费了我大部分上午才意识到这一点。 - somerandomusername
3
非常有帮助!Google应用签名的SHA1必须添加到您的服务SHA1列表中。 - Lucy
6
救命稻草!这应该在Google App Bundle文档中突出显示。他们在页面底部的提示和最佳实践下提到了它,但是不清楚需要什么以及如何实现。 - AdamHurwitz
不得不使用上传密钥证书的SHA-1和SHA-256。顺便说一句,谢谢。 - mdhz
1
在Google Play上提到“你可以在哪里找到”会很有帮助:在https://play.google.com/console的左侧,转到***发布 > 设置 > 应用完整性***,然后点击应用签名选项卡。 - Flion

56

或者你可以使用命令行获取你的SHA-1指纹:

对于你的调试证书,你应该使用:

keytool -list -v -keystore C:\Users\user\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

请将 "c:\Users\user" 替换为您的 Windows 用户目录路径。

如果您想获取自己证书的生产 SHA-1,请将 "C:\Users\user\.android\debug.keystore" 替换为您自定义的 KeyStore 路径,并使用您的 KeystorePass 和 Keypass 替代 android/android。

然后,根据 Damini 的建议,在 Firebase 控制台中声明您获得的 SHA-1 指纹。


1
你需要切换到Java Bin文件夹才能让keytool工作。对于我来说,它是C:\Program Files\Android\jdk\microsoft_dist_openjdk_1.8.0.25\bin,但你可能直接安装了一般的Java版本在C:\Program Files\Java\... - Kind Contributor

41

在MacOS中,只需将内容粘贴到终端中:

keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android

为我工作,谢谢。 - malik kurosaki
1
我们可以在 Firebase 中添加多个 SHA-1,例如一个用于调试,另一个用于生产环境吗? - Mahmood Hussain

35

更新后的Android Studio(2021年5月12日)

  1. 点击Gradle右侧
  2. 点击大象图标并输入命令
gradle signingReport

按Enter键

现在,您将在运行窗口中看到“BUILD SUCCESSFUL”,您可以从底部打开该窗口,只需向上滚动该窗口,就会在那里找到您的SHA1密钥。将此密钥添加到firebase中。

  1. 在项目设置中,转到“您的应用程序”卡片。
  2. 选择要向其添加SHA指纹的Firebase Android应用程序。
  3. 单击添加指纹。
  4. 输入或粘贴SHA指纹,然后单击保存。

最后,在运行应用程序时,请检查是否将运行配置更改为应用程序,否则仅会一遍又一遍地运行签名报告任务。


1
谢谢,它有效了...感谢最后一行。 - Mahbubur Rahman Khan
这为我创建了多个SHA指纹。我应该选择哪一个? - Shreyash.K
理想情况下,您应该获取两个指纹:SHA1和SHA256。您的项目中有多个模块吗?否则,请分享更多细节。 - Shubham Garg

14
如果您正在使用谷歌播放应用签名,您无需手动添加SHA-1密钥,只需登录Firebase,进入“项目设置”->“集成”,然后按一下按钮将Google Play与Firebase链接即可,SHA-1将自动添加。

我们知道将Firebase和Google Play链接起来完全没问题,这是一个非常简单的方法,可以省去SHA生成和集成步骤。不到一分钟时间,我就成功解决了我的应用程序中Google登录错误的问题。谢谢。 - mohit kejriwal
我在我的应用程序中使用电话号码OTP Firebase身份验证,因此我将我的项目添加到Firebase控制台,并添加了SHA-1和SHA-256。然后,我将我的项目上传到Google Play商店,并将其与Firebase中的项目链接起来。现在,Google Play商店上的SHA-1与Firebase上的不同。这是一个问题吗?谢谢。 - ibrahim
如果在与Google Play的Firebase集成期间添加了该SHA,则该SHA应该是正确的。 - Torello

11

在你的android目录下执行此命令。

./gradlew signingReport 

如果你还没有进入android目录,请运行以下命令:

cd android && ./gradlew signingReport

这是一个很好的答案,因为该命令会显示应用程序的所有构建类型和变体的指纹。 - Ícaro

8

注意:在使用命令行生成 SHA1 指纹时,要谨慎指定文件夹路径。如果你的用户名或 Android 文件夹路径中有空格,应该像下面这样添加两个双引号:

keytool -list -v -keystore "C:\Users\User Name\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

6

尝试将以下代码粘贴到CMD中:

keytool -list -v -alias androiddebugkey -keystore  %USERPROFILE%\.android\debug.keystore

什么是密码? - Pro Co
这是您的Mac密码。 - Hüseyin Sezen

6

对于Linux Ubuntu,打开终端并输入:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接