【問題背景】:有人開發(fā)者應(yīng)用上架到華為應(yīng)用市場后谷歌地圖加載失敗。而谷歌商店已經(jīng)上架同樣的包沒有問題。
【問題分析】:
鑒權(quán)失?。?/span>
10-07 14:25:25.641 3061 3397 E Google Maps Android API:API密鑰:AIzaSyA2wHvbJd8P46jl1DLXRAlv3B5yIKCNDyE
10-07 14:25:25.641 3061 3397 E Google Maps Android API:Android應(yīng)用程序(<cert_fingerprint>; <package_name>): D3: 98:30:D7:75:FD:25:0E:DC:FA:0E:D5:30:DE:E0:BC:38:20:6D:D9 ; de.hafas.android.db
10-07 14:25:25.641 3061 3397 E Google Maps Android API:授權(quán)失敗。有關(guān)如何正確設(shè)置地圖的信息,請參見https://developers.google.com/maps/documentation/android-api/start。
日志中的證書指紋是應(yīng)用簽名的SHA1證書指紋,可能可知谷歌地圖加載失敗的原因是獲取不到證書指紋,進(jìn)一步查看谷歌地圖集成的問題,發(fā)現(xiàn)確實(shí)需要配置SHA1的證書指紋,而開發(fā)者使用了華為系統(tǒng)的簽名服務(wù),導(dǎo)致證書指紋變化了,這才是問題根因。
【解決方案】:
方案一:獲取新的SHA1證書指紋,重新集成谷歌地圖。
1,通過華為公司安全紅線要求,暫時(shí)沒有提供SHA1的證書指紋打印,但是可以通過下載證書來獲取,登錄AGC,進(jìn)入應(yīng)用簽名頁簽,下載應(yīng)用簽名證書:
2,執(zhí)行openssl命令直接打印輸出:
3,按照谷歌地圖集成文檔重新配置SHA1證書指紋:
鏈接:https : //developers.google.com/maps/documentation/android-sdk/get-api-key?hl= zh-cn
方案二:直接使用谷歌商店上架時(shí)的簽名文件。
開發(fā)者直接使用和谷歌商店一樣的簽名證書。不需要重新配置,就是在選擇“應(yīng)用簽名”服務(wù)時(shí)選擇上傳自己的簽名文件即可,如下: