【問(wèn)題背景】:有人開(kāi)發(fā)者應(yīng)用上架到華為應(yīng)用市場(chǎng)后谷歌地圖加載失敗。而谷歌商店已經(jīng)上架同樣的包沒(méi)有問(wèn)題。
【問(wèn)題分析】:
鑒權(quán)失敗:
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è)置地圖的信息,請(qǐng)參見(jiàn)https://developers.google.com/maps/documentation/android-api/start。
日志中的證書(shū)指紋是應(yīng)用簽名的SHA1證書(shū)指紋,可能可知谷歌地圖加載失敗的原因是獲取不到證書(shū)指紋,進(jìn)一步查看谷歌地圖集成的問(wèn)題,發(fā)現(xiàn)確實(shí)需要配置SHA1的證書(shū)指紋,而開(kāi)發(fā)者使用了華為系統(tǒng)的簽名服務(wù),導(dǎo)致證書(shū)指紋變化了,這才是問(wèn)題根因。
【解決方案】:
方案一:獲取新的SHA1證書(shū)指紋,重新集成谷歌地圖。
1,通過(guò)華為公司安全紅線要求,暫時(shí)沒(méi)有提供SHA1的證書(shū)指紋打印,但是可以通過(guò)下載證書(shū)來(lái)獲取,登錄AGC,進(jìn)入應(yīng)用簽名頁(yè)簽,下載應(yīng)用簽名證書(shū):
2,執(zhí)行openssl命令直接打印輸出:
3,按照谷歌地圖集成文檔重新配置SHA1證書(shū)指紋:
鏈接:https : //developers.google.com/maps/documentation/android-sdk/get-api-key?hl= zh-cn
方案二:直接使用谷歌商店上架時(shí)的簽名文件。
開(kāi)發(fā)者直接使用和谷歌商店一樣的簽名證書(shū)。不需要重新配置,就是在選擇“應(yīng)用簽名”服務(wù)時(shí)選擇上傳自己的簽名文件即可,如下: