Google Maps API Key适用于已签名的apk,但在发布后无效

时间:2017-06-13 02:46:59

标签: android google-maps google-play-services google-maps-android-api-2 android-signing

我在API控制台中生成了2个API密钥,一个用于使用调试SHA1(无限制)进行调试,另一个用于使用发布密钥库SHA1(使用Android应用程序限制)生成。

我在调试.. \ google_maps_api.xml和发布.. \ google_maps_api.xml中分别使用了API密钥,并在结束应用程序标记上方的Manifest中添加了元数据。我生成了一个签名的APK,地图加载很好。我的清单看起来像这样

<application
    <activity
        android:name=".MainActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="stateHidden|adjustResize" />

    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

    <activity
        android:name=".MapsActivity"
        android:label="@string/title_activity_maps"
        android:screenOrientation="portrait" />

    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_maps_key" />
</application>

我使用签名服务V1(Jar Signature)和V2(Full APK Signature)生成签名的APK。在Playstore中发布后,地图未加载。有人可以指导我吗?。

2 个答案:

答案 0 :(得分:0)

基于此thread,当您导出应用程序以发布它时,您可能不再使用调试密钥库,而是自定义调试密钥库。切换到另一个密钥库时,您必须生成新的Google Maps API密钥。您需要创建发布证书指纹。您可以检查here生成发布证书指纹的步骤。这是另一个可能有帮助的reference

答案 1 :(得分:0)

此问题的一个解决方案是如果您正在使用 Google 的应用签名,他们正在为您重新签署您的应用,并且您需要将新的 SHA-1 密钥添加到 API 密钥限制中.这就是为什么它在您签名和安装时有效,而不是在将其上传到 Play 管理中心后有效。

通过选择应用 -> 设置 -> 应用完整性,可以在 https://play.google.com/console 上找到此 SHA-1。

在您将此 SHA-1 指纹添加到您的密钥后,应用将开始运行,无需重新构建。