侧面加载时,Google Maps API Key在发布版本中有效,发布后则不起作用

时间:2019-02-03 15:59:19

标签: android google-maps google-api google-play-console

我有一个使用Maps API的应用,我有该API的Debug和Release键。当侧面加载时,所有这些都很好用。 Release键与发布版本一起使用。我将Release APK上传到了Google Play控制台,并推出了内部测试版本。我是从商店安装的,它的行为就像API密钥不好一样。

我在网站上遇到了许多类似的问题,甚至尝试对清单中的发行密钥进行硬编码,并且在所有情况下,侧面加载都能正常工作,但通过Google Play商店安装时却无法正常工作。

我将电话挂接到日志分析器上,并进行了许多映射操作,以尝试查看问题所在,但是我在日志中收到的仅有两条消息表明,即使我没有Map API,该API也能正常工作地图显示,它的行为就像API密钥丢失或无效。请注意,当我从标准更改为卫星时,发生了弃用警告,我没有直接使用室内支持。加载活动时,API包版本消息出现。

这是两个日志条目: 02-03 09:23:07.550 15809-15809 /? W / Google Maps Android API:弃用通知:在将来的版本中,卫星地图,混合地图或地形类型地图将不再支持室内。即使不支持室内,isIndoorEnabled()也会像现在一样继续返回通过setIndoorEnabled()设置的值。默认情况下,setIndoorEnabled为'true'。当这些地图类型无法使用室内支持时,API发行说明(https://developers.google.com/maps/documentation/android-api/releases)会通知您。

02-03 09:30:24.319 15809-15809 /? I / Google Maps Android API:Google Play服务软件包版本:14799019

我正在使用Google签名,并且已经上传了签名密钥,我认为这可能是双重签名并导致了问题。我上传了一个未签名的APK,而Google Play控制台接过该应用并对其进行了签名。我还上传了签名的APK,无论哪种情况,地图都是空白的,并且表现为没有密钥或密钥无效。在所有情况下,侧面加载时(即不在商店中)地图都可以正常工作,但在通过商店加载时不会显示地图。

2 个答案:

答案 0 :(得分:3)

听起来很简单,您必须将实际“释放密钥”(在所示方案中称为“应用签名密钥”)的指纹添加到所用Maps API密钥的限制中。对于v2签名,“上传密钥”是另一回事(这是侧面加载时最有可能使用的一个密钥指纹)。要使1个Maps API密钥在任何情况下都可以正常工作,则应添加3个密钥指纹。

v2 app signing

图片来源:documentation

答案 1 :(得分:3)

您是否使用上传密钥注册了Google Play应用签名?如果是这样,Google Play会先对您的APK重新签名,然后再将其发布给用户,这将解释为什么它会在本地运行,但无法通过Play发布。

您可以转到Play控制台中的“应用签名”页面来验证是否已注册。如果是这样,则需要在Cloud Console的Google Maps API的凭据部分中将应用签名证书列入白名单。

您可以在https://support.google.com/googleplay/android-developer/answer/7384423

上了解有关应用签名的更多信息