【问题标题】:Android Studio only gives me SHA1, I need SHA256Android Studio 只给我 SHA1,我需要 SHA256
【发布时间】:2017-07-06 13:14:41
【问题描述】:

我想使用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?有什么想法吗?

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

编辑:

回答 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 的另一种方法:

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

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

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

它会显示 SHA 密钥

祝你好运!

【问题讨论】:

  • 亲爱的@Intellij Amiya,你能用绝对不相关的链接删除你的重复标记吗?相反,您可能会尝试回答这个问题。谢谢。
  • 重新打开您的问题。
  • 感谢@Intellij Amiya。如何重新打开我的问题?
  • @Immy 如何生成用于发布的 SHA256,要在assetlink.json 文件中输入?
  • @jyomin 2 在上面的原始问题中查看我的编辑。祝你好运!

标签: android sha android-app-indexing google-app-indexing firebase-app-indexing


【解决方案1】:

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

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

【讨论】:

  • 这个解决方案有效,但是我注意到它只列出了调试键。
  • 嘿 Manish,你知道为什么 android studio 没有列出发布密钥和/或 SHA256 指纹吗?谢谢
  • keytool -list -v -keystore "path to release key store" -alias your release alias here -storepass android -keypass android 从这里我得到了 sha1 和 sha256
  • 如果有人像我一样在密码中有感叹号,请将密码用单引号括起来
  • 对于 Macintoshpasswordempty 用于调试)keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
【解决方案2】:

您可以从 Google Play 控制台 (https://play.google.com/apps/publish) 获取它。请按以下步骤操作:

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

【讨论】:

  • 我在 2021 年最新的 GPC 号中找不到类似的东西 :-(
  • 使用 Play 控制台搜索功能搜索“Play App Signing”,您会找到列出的所有公共应用签名密钥证书/指纹 :)
  • 现在在https://play.google.com/console/u/0/developers/$YOUR_ACCOUNT_ID/app/$YOUR_APP_ID/keymanagement的“发布>设置>应用程序完整性”下
【解决方案3】:

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

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

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

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

【讨论】:

  • 但是,不要忘记在主工具栏中更改运行配置,以便能够再次运行调试配置。
  • 如果找不到这里提到的部分,还有另一种执行方式:点击 gradle 标签左上角的大象按钮Execute Gradle Task,然后输入gradle signingReport。 (或者更直观,Android Studio 右上角的Run Anything 按钮,然后输入与上面相同的命令。)
【解决方案4】:

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

./gradlew 签名报告

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

【讨论】:

  • 这个帮助了我
【解决方案5】:

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

【讨论】:

    【解决方案6】:

    久经考验的解决方案;

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

    【讨论】:

      【解决方案7】:

      我总是觉得使用./gradlew signingReport 对我有效且有益。

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

      【讨论】:

        【解决方案8】:

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

        1. 导航到 Android Studio 右侧的 Gradle 选项卡。
        2. 在列表中,导航到应用部分并展开它。如果您在展开的列表中看到“任务”部分,请关注 this answer,一切顺利。

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

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

        gradle signingReport
        

        它会在控制台中打印 SHA。

        【讨论】:

          【解决方案9】:

          如果您需要自动化,您可以从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 App Signing 时,上传密钥证书签名的二进制文件的签名将不同于 Google Play 分发的二进制文件。

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

          【讨论】:

            猜你喜欢
            • 2017-06-07
            • 2021-08-08
            • 2012-05-02
            • 2023-02-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多