簡體   English   中英

Android Studio 只給我 SHA1,我需要 SHA256

[英]Android Studio only gives me SHA1, I need SHA256

我想使用assetlinks.json進行應用索引。 我應該使用SHA256 fingerprint ,但是當我在signingReport Studio 中打印出簽名報告時,我只有 SHA1。

我可以使用SHA1嗎? 如果沒有,我怎樣才能獲得 SHA256 簽名的應用程序?

使用 Manish Jain 的回答,我設法只列出了調試鍵。 如果我將我的實際密鑰庫路徑和 jks 文件放在路徑中:

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

出現了一組不同的鍵,我假設它是釋放鍵集。

最大的問題是為什么 Android Studio 在我從signingReport打印出簽名報告時只列出調試密鑰,為什么它說Variant: releaseUnitTest, Config: none 任何想法?

您可以通過使用命令提示符 (Windows) 的keytool來獲取SHA256

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

有一個更簡單和更新的方法可以找到它,來自這個答案

  1. 導航到 Android Studio 右側的Gradle選項卡。
  2. 在列表中,導航到應用程序部分並展開它。
  3. 在展開的列表中,導航到“任務”部分並展開它。
  4. 同樣,在展開的列表中,導航到android部分並展開它。
  5. 雙擊signatureReport ,並在 Run 框中找到 SHA-256 Fingerprint。

您會在那里找到您的 SHA-256 指紋。

正如@quent 所評論的,更改主工具欄中的運行配置以再次運行調試配置。

您可以從 Google Play Console ( https://play.google.com/apps/publish ) 獲取它。 按着這些次序:

  1. 在 GPC 中轉到您的項目。
  2. 展開Release Management
  3. 轉到App signing
  4. 導航到App signing certificate
  5. 復制 SHA-256 指紋。

從終端轉到項目的根目錄並運行以下命令

./gradlew 簽名報告

您將獲得 SHA-1、SHA-256 和其他詳細信息

導航到 Android Studio 右側的 Gradle 選項卡

  1. 導航到 Android Studio 右側的Gradle選項卡
  2. 展開項目名稱
  3. 展開任務
  4. 展開安卓
  5. 雙擊signatureReport

嘗試過的解決方案;

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

轉到播放控制台-> 應用程序完整性

應用簽名

go 玩控制台儀表板->應用程序完整性->應用程序簽名,您將看到 SHA-1、SHA256 和 MD5 密鑰

我總是發現使用./gradlew signingReport對我來說是有效且有益的。

只需在您的項目終端中運行該命令。

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

  1. 導航到 Android Studio 右側的 Gradle 選項卡。
  2. 在列表中,導航到應用程序部分並展開它。 如果您在展開的列表中看到“任務”部分,請按照此答案進行操作,一切順利。

如果您無法看到“任務”部分,則替代方法是:

點擊gradle選項卡左上角的大象按鈕Execute Gradle Task,然后輸入:

gradle signingReport

它將在控制台中打印 SHA。

如果您需要它自動化,您可以從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 分發的二進制文件。

所以這可能不適合這種情況。

將 OP 的解決方案從問題遷移到答案:

對於發布:

  1. Go 至: 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 上找到了它:

  • 上傳您的應用的第一個版本(如果您還沒有完成)
  • Go 到發布管理中的應用發布
  • 點擊管理測試版
  • 在 APK 版本點擊右側的“i”信息按鈕

它將向您顯示 SHA 密鑰

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM