【问题背景】:某开发者应用上架到华为应用市场后谷歌地图加载失败。而谷歌商店已经上架同样的包没有问题。
【问题分析】:
抓取应用加载谷歌地图试日志表示 鉴权失败:
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