【问题标题】:Google Maps API Key works with signed apk but not working after publishingGoogle Maps API Key 适用于已签名的 apk,但在发布后无法使用
【发布时间】:2017-11-14 15:30:56
【问题描述】:

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

我在 debug..\google_maps_api.xml 和 release..\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 签名)和 V2(完整 APK 签名)生成了签名的 APK。在 Playstore 中发布后,地图未加载。有人可以指导我吗?。

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 我使用发布密钥库 SHA 创建了一个单独的 API 密钥用于发布。我使用 keytool -list -v -keystore your_keystore_name -alias your_alias_name 来获取 SHA
【解决方案2】:

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

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

将此 SHA-1 指纹添加到您的密钥后,应用程序将开始工作,无需重新构建。

【讨论】:

    猜你喜欢
    • 2019-09-03
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多