【問題背景】:某開發者應用上架到華為應用市場后谷歌地圖加載失敗。而谷歌商店已經上架同樣的包沒有問題。
【問題分析】:
抓取應用加載谷歌地圖試日志表示 鑒權失敗:
10-07 14:25:25.641 3061 3397 E Google Maps Android API: API Key: AIzaSyA2wHvbJd8P46jl1DLXRAlv3B5yIKCNDyE
10-07 14:25:25.641 3061 3397 E Google Maps Android API: Android Application (<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: Authorization failure. Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.
日志中的證書指紋是應用簽名的SHA1證書指紋,由此可知谷歌地圖加載失敗的原因是獲取不到證書指紋,進一步查看谷歌地圖集成的問題,發現確實需要配置SHA1的證書指紋,而開發者使用了華為系統的簽名服務,導致證書指紋變化了,這才是問題根因。
【解決方案】:
方案一:獲取新的SHA1證書指紋,重新集成谷歌地圖。
1、由於華為公司安全紅線要求,暫時沒有提供SHA1的證書指紋打印,但是可以通過下載證書來獲取,登錄AGC,進入應用簽名頁簽,下載應用簽名證書:
2、執行openssl命令直接打印輸出:
3、按照谷歌地圖集成文檔重新配置SHA1證書指紋:
鏈接:https://developers.google.com/maps/documentation/android-sdk/get-api-key?hl=zh-cn
方案二:直接使用谷歌商店上架時的簽名文件。
開發者直接使用和谷歌商店一樣的簽名證書。不需要重新配置,就是在選擇“應用簽名”服務時選擇上傳自己的簽名文件即可,如下:
原文鏈接:https://developer.huawei.com/consumer/cn/forum/topic/0201411981231120393?fid=0101271690375130218
原作者:Mayism