Android Maps API2发布密钥可在本地运行,但不能通过Play商店运行

时间:2013-09-05 14:44:46

标签: android eclipse adb google-maps-android-api-2

我正在制作一款使用Google Maps API V2的应用。在调试模式下构建应用程序时,使用调试键可以很好地显示地图。同样如此,当我使用Eclipses导出功能和我的生产密钥导出应用程序时,在本地安装应用程序:

adb install com.package.name

然而,当我在Play商店中发布apk(作为alpha测试)并将其下载到我的设备上时,没有显示任何地图,让我怀疑密钥出现问题。

我在API控制台中注册了生产密钥,并将清单中的地图密钥更改为新密钥,因此当我通过ADB安装时,它可以正常工作。

我还从Play商店重新安装之前卸载了该应用,并从API控制台中删除了我的调试密钥,以确保释放密钥得到使用(从而正常运行)。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:1)

这是一个迟到的回应,但我认为这可能会帮助其他可能遇到类似问题的人。我也正确生成了所有发布/调试密钥,并且我签名的发布版本上的地图可以通过ADB安装很好地工作,但在上传到Google Play商店之后却没有。

以下是我的解决方案:使用新的可选“Google Play App Signing”功能,您的最终SHA1可以在Google Play控制台中找到 - >发布管理 - >应用程序签名。将应用程序签名证书的SHA1添加到API控制台中API的密钥限制列表中,并且您的地图应该正常工作。

显然,在上传之前使用我自己的密钥库(发布)生成的SHA1与上传到Google Play商店后的最终版本不同。

希望这有帮助。

答案 1 :(得分:0)

转到Google Apis控制台,再使用调试密钥添加一个条目。

那么你将有一个条目:

45:B5:E4:6F:36:AD:0A:98:94:B4:02:66:2B: - 等等生产关键; com.package.name 45:B5:E4:6F:36:AD:0A:98:94:B4:02:66:2B: - yada yada debug key; com.package.name

//我使用的密钥是随机的,你会得到它们为每个密钥库运行以下命令(调试和生产)

使用此命令获取密钥:

keytool -list -v -keystore mystore.keystore

tl; dr两个密钥,一个用于调试一个用于生产,两个条目用于Google Api控制台

答案 2 :(得分:0)

我通过创建新应用和新证书来解决问题。我不认为这是一个“解决方案”,因为我一开始并没有发现出了什么问题。

答案 3 :(得分:0)

基本上,无论何时Google Map,我们都需要一个API密钥,它是根据密钥库的SH1密钥生成的。 当您使用本地系统时,我们必须使用Eclipse中显示的SH1键。但是当我们签署我们的应用程序以在Playstore上上传APK时,我们需要编辑退出键并用较新的SH1键替换旧的SH1键。 注意:您可以在为APK分享APK时获取较新的SH1。签名时会显示密钥库文件的SH1密钥,您将其用于Playstore的特定应用程序。