Android Studio 只给我 SHA1,我需要 SHA256

问题描述 投票:0回答:12

我想使用

assetlinks.json
进行应用程序索引。 我应该使用
SHA256 fingerprint
,但是当我在 Android Studio 中打印
signingReport
时,我只有 SHA1。

我可以使用

SHA1
吗?如果没有,我怎样才能获得 SHA256 签名的应用程序?

使用 Manish Jain 的答案,我成功地只列出了调试键。如果我将实际的密钥库路径和 jks 文件放在路径中:

keytool -list -v -keystore "C:\Users\myself\Keystores\android.jks" -alias mykey -storepass 1password -keypass 2password

出现一组不同的键,我认为这将是释放键组。

最大的问题是为什么当我从 Gradle 打印出 signingReport

 时 Android Studio 只列出调试键以及为什么它显示 
Variant: releaseUnitTest, Config: none
?有什么想法吗?

android sha android-app-indexing google-app-indexing firebase-app-indexing
12个回答
105
投票
您可以使用命令提示符(Windows)使用

SHA256

 来获取 
keytool

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


对于 Mac 用户:

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


如果您的密码中有任何特殊字符,您可能需要将密码用单引号引起来。


52
投票
有一个更简单和更新的方法来找到它,来自

这个答案

    导航到 Android Studio 右侧的
  1. Gradle 选项卡。
  2. 在列表中,导航至
  3. app 部分并将其展开。
  4. 在展开的列表中,导航至
  5. Tasks 部分并将其展开。
  6. 再次在展开的列表中,导航至
  7. android 部分并将其展开。
  8. 双击
  9. signingReport,然后在运行框中找到SHA-256 指纹。
您将在那里找到您的 SHA-256 指纹。

正如 @quent 评论的那样,更改主工具栏中的运行配置以再次运行调试配置。


39
投票
从终端进入项目根目录并运行以下命令

./gradlew 签名报告

您将获得 SHA-1、SHA-256 和其他详细信息


23
投票
您可以从 Google Play 管理中心 (

https://play.google.com/apps/publish) 获取它。请按照以下步骤操作:

    转到您在 GPC 中的项目。
  1. 展开“发布管理”。
  2. 转到“应用程序签名”。
  3. 导航到“应用程序签名证书”。
  4. 复制 SHA-256 指纹。

13
投票
我总是发现使用

./gradlew signingReport

对我来说有效且有益。

只需在项目终端中运行命令即可。


12
投票

Navigate to the Gradle tab at the right side of Android Studio

    导航到 Android Studio 右侧的
  1. Gradle 选项卡
  2. 展开
  3. 项目名称
  4. 展开
  5. 任务
  6. 扩展
  7. Android
  8. 双击
  9. 签署报告

5
投票
截至 2021 年,在最新的 Android Studio 中:

    导航到 Android Studio 右侧的 Gradle 选项卡。
  1. 在列表中,导航到应用程序部分并将其展开。如果您在展开的列表中看到“任务”部分,请按照
  2. 此答案操作,就可以开始了。

如果您看不到“任务”部分,则替代方法是:

单击 gradle 选项卡左上角的大象按钮执行 Gradle 任务,然后输入:

gradle signingReport
它将在控制台中打印 SHA。


5
投票

应用程序完整性”/>Go to play console-></a>
</p><p><a href=App signing

进入控制台仪表板 -> 应用程序完整性 -> 应用程序签名,您将看到 SHA-1、SHA256 和 MD5 密钥


1
投票

尝试过的解决方案:升级你的Gradle版本

distributionUrl = https \: //services.gradle.org/distributions/gradle-5.4.1-bin.zip in gradle-wrapper.preperties
之后

  • 导航到 Android Studio 右侧的 Gradle 选项卡

  • 展开项目名称

  • 展开任务

  • 扩展Android

  • 双击签署报告


0
投票
如果您需要自动化,您可以从

signingReport

 gradle 任务输出中提取值,如下所示:

function signing_certificate_digest() { ./gradlew app:signingReport | \ awk "/^Variant: $1\$/,/SHA-256|---/" | \ grep 'SHA-256' | \ cut -d' ' -f2 }
您可以在命令行中这样使用:

signing_certificate_digest debug
另请注意:

使用 Play 应用签名时,上传密钥证书签名的二进制文件的签名将与 Google Play 分发的二进制文件不同。

所以这可能不适合这种情况。


0
投票

将OP的解决方案从问题迁移到答案:

发布:

    转到:
  1. C:\Program Files\Java\jdk1.7.0_25\bin
    (或您的 jdk 文件所在的位置)。
  2. 在 win 资源管理器的地址栏中输入
  3. cmd
  4. 添加:
  5. keytool -list -v -keystore "C:\Users\yourUserName\Keystores\android.jks" -alias yourAppName -storepass yourPasswordToKeystore -keypass yourPasswordToRequiredAppKey
    
    

小心!!!

如果您的密钥库中有多个密钥,它可能不会为您提供 正确匹配给定的应用程序!

为您的应用获取 SHA256 的另一种方法:

无论是在开发者控制台还是Firebase上,您都可以找到相关的 SHA256 密钥某处。我现在找不到,但如果你继续寻找, 它就在那儿的某个地方。

我刚刚在 Google Play 开发者控制台上找到了它:

    上传应用程序的第一个版本(如果您还没有这样做)
  • 转到发布管理中的应用程序发布
  • 单击管理测试版
  • 在APK版本中点击右侧的“i”信息按钮
它将向您显示 SHA 密钥


0
投票
只需在 Android Studio 控制台中运行以下命令即可

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    
© www.soinside.com 2019 - 2024. All rights reserved.