1. 程式人生 > >解決高德地圖key錯誤與sha1不匹配或MD5安全碼未通過問題

解決高德地圖key錯誤與sha1不匹配或MD5安全碼未通過問題

在開發模式中使用地圖功能時提示“使用者MD5安全碼未通過”,檢視高德官方文件,給予下面提示:

*使用雲圖檢索、附近功能出現“key錯誤”、“使用者MD5安全碼未通過”、1008錯誤如何解決?
雲圖目前只支援使用釋出版SHA1,為了保證雲圖相關功能(業務資料的檢索以及附近功能)的正常使用,請申請一個用於除錯的Key和一個使用者釋出的Key,其中:

除錯Key:釋出版安全碼SHA1和除錯版安全碼SHA1都填寫開發環境下開發工具 keystore 對應的 SHA1,即開發模式(debug)SHA1,用於日常的功能除錯。
釋出Key:釋出版安全碼SHA1和除錯版安全碼SHA1都填寫上線的apk keystore 對應的 SHA1,即釋出模式(release)sha1用於釋出使用。*

點我檢視

高德地圖安全碼sha1設定
可以瞭解是由於sha1未按約定填寫導致的。

解決思路:
根據約定,除錯時無論開發模式(debug)sha1還是釋出模式(release)sha1統一填寫開發模式(debug)sha1;釋出時二者均用釋出模式(release)sha1。

問題來了,如何獲取sha1?
1.開發模式sha1的獲取:
使用keytool(金鑰和證書管理工具):進入cmd模式,依次進入到“c盤/使用者名稱/.android ”路徑下,執行keytool -v -list -keystore debug.keystore -storepass android 命令。 (注意,debug.keystore是固定的,前面也無需加任何字首)

開發模式sha1

關於上條命令的說明:-list 列出金鑰庫中的條目,-v 詳細輸出,-keystore 指定祕鑰庫名稱,-storepass 指定金鑰庫密碼

2.釋出模式sha1的獲取:
同樣使用keytool工具,與上述步驟雷同,區別是指定的keystore路徑為實際專案生成的keystore檔案,注意路徑要補全。keysore檔案既可以是.jks格式的,也可以是.keystore格式的。我這裡是.jks

釋出版sha1獲取命令

這裡寫圖片描述

小提示:

- 開發模式(debug模式)金鑰庫口令是*android*
- 在當前路徑下開啟命令模式:按住*shift點選滑鼠右鍵。*
- keystore檔案的格式可以是

.keystore*,也可以是.jks。*
- key錯誤,也有粗心的開發者平臺上提交的包名與實際包名不一致造成的。