Android Studio 只给我 SHA1,我需要 SHA256

Android Studio only gives me SHA1, I need SHA256

我想使用 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

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

大问题 是为什么 Android Studio 在我从 Gradle 打印出 signingReport 时只列出调试键的原因及其原因说 Variant: releaseUnitTest, Config: none?有什么想法吗?

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

编辑:

正在回复 jyomin 2 的问题。 我希望它也能帮助到其他人。

待发布:

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

小心!!!

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

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

在 Developer Console 或 Firebase 上,您都可以在某处找到相关的 SHA256 密钥。我现在找不到它,但如果你继续寻找,它就在那里。

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

它将显示 SHA 密钥

祝你好运!

您可以通过使用命令提示符 (windows) 使用 keytool 获得 SHA256

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

您可以从 Google Play 管理中心 (https://play.google.com/apps/publish) 获取它。请按照以下步骤操作:

  1. 在 GPC 中转到您的项目。
  2. 展开Release Management.
  3. 转到App signing
  4. 导航到 App signing certificate
  5. 复制 SHA-256 指纹。

有一种更简单和更新的方法可以找到它,来自 this answer

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

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

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

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

./gradlew signingReport

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

  1. 导航至 Android Studio
  2. 右侧的 Gradle 选项卡
  3. 展开项目名称
  4. 展开任务
  5. 展开Android
  6. 双击 signingReport

尝试过的解决方案;

升级您的 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

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

只需运行项目终端中的命令。

截至 2021 年,在最新的 Android 工作室中:

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

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

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

gradle signingReport

它会在控制台中打印 SHA。

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

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

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

signing_certificate_digest debug

另请注意:

When using Play App Signing, the signature of the binary signed by the upload key certificate will be different than the binary distributed by Google Play.

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