32

我想用于应用assetlinks.json索引。我应该使用 a SHA256 fingerprint,但是当我signingReport在 Android Studio 中打印出来时,我只有 SHA1。

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

使用 Manish Jain 的回答,我设法只列出了调试键,这比我自己做的要多。

如果我将我的实际密钥库路径和 jks 文件放在路径中:

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

出现了一组不同的键,我假设它是释放键集。

最大的问题signingReport是为什么当我从 Gradle打印出来时 Android Studio 只列出调试键,为什么它说Variant: releaseUnitTest, Config: none?任何想法?

顺便说一句,这个问题与建议的副本无关。

编辑:

回答 jyomin 2 的问题。我希望它也对其他人有所帮助。

对于发布:

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

当心!!!

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

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

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

我刚刚在 Google Play Developer Console 上找到了它:

  • 上传您的应用的第一个版本(如果您还没有完成)
  • 转到发布管理中的应用发布
  • 点击管理测试版
  • 在 APK 版本点击右侧的“i”信息按钮

它将向您显示 SHA 密钥

祝你好运!

4

9 回答 9

49

您可以SHA256使用keytool命令提示符(Windows)来获取。

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

于 2017-02-17T06:24:32.837 回答
43

有一个更简单和更新的方法来找到它,来自这个答案

  1. 导航到Android Studio 右侧的Gradle选项卡。
  2. 在列表中,导航到应用部分并展开它。
  3. 在展开的列表中,导航到“任务”部分并将其展开。
  4. 同样,在展开的列表中,导航到android部分并展开它。
  5. 双击signingReport,然后在 Run 框中找到 SHA-256 指纹。

你会在那里找到你的 SHA-256 指纹。

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

于 2020-01-01T21:06:18.923 回答
18

您可以从 Google Play 控制台 ( https://play.google.com/apps/publish ) 获取它。按着这些次序:

  1. 转到您在 GPC 中的项目。
  2. 展开Release Management
  3. App signing
  4. 导航到App signing certificate
  5. 复制 SHA-256 指纹。
于 2018-02-19T15:15:44.563 回答
15

从终端转到项目的根目录并运行以下命令

./gradlew 签名报告

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

于 2020-12-01T19:12:30.580 回答
7

我总是发现使用./gradlew signingReport对我有效且有益。

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

于 2021-06-03T04:43:48.173 回答
6

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

  1. 导航到Android Studio 右侧的Gradle选项卡
  2. 展开项目名称
  3. 展开任务
  4. 展开安卓
  5. 双击签名报告
于 2020-12-17T02:50:29.273 回答
1

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

  1. 导航到 Android Studio 右侧的 Gradle 选项卡。
  2. 在列表中,导航到应用部分并展开它。如果您在扩展列表中看到“任务”部分,请按照此答案进行操作,一切顺利。

如果您看不到“任务”部分,则备用选项是:

点击gradle选项卡左上角的大象按钮Execute Gradle Task,然后输入:

gradle signingReport

它将在控制台中打印 SHA。

于 2021-12-03T20:00:20.167 回答
1

尝试过的解决方案;

升级你的 gradle 版本

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

在那之后

-Navigate to the Gradle tab on the right side of Android Studio

-Expand the project name

-Expand Tasks

-Expand Android

-Double click on signingReport
于 2020-12-27T11:45:06.390 回答
0

如果您需要自动化,您可以从signingReportgradle 任务输出中提取值,如下所示:

function signing_certificate_digest() {
  ./gradlew app:signingReport | \
    awk "/^Variant: $1\$/,/SHA-256|---/" | \
    grep 'SHA-256' | \
    cut -d' ' -f2
}

您可以在命令行中像这样使用它:

signing_certificate_digest debug

另请注意:

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

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

于 2022-01-19T11:51:21.177 回答