使用受限密钥的应用内的 Google 地图不起作用



我有一个渲染 MapView 和折线的 android 应用程序,如果我使用 IP 受限的 API 密钥,它在 Android 模拟器上运行良好,但当我在手机上运行的世博会构建的应用程序中使用 android 受限键时,它甚至可以显示地图,绝对没有折线。

我的app.json中有以下内容:

{
"expo": {
"android": {
"package": "com.company.project",
"permissions": [ "CAMERA" ],
"config": {
"googleMaps": {
"apiKey": "ACTUAL_API_KEY_HERE"
}
}
},
...

代码的方向部分如下:

const key = Constants.manifest.android.config.googleMaps.apiKey;
const resp = await fetch(`https://maps.googleapis.com/maps/api/directions/json?origin=${ startLoc }&destination=${ destinationLoc }&key=${ key }`);
const respJson = await resp.json();

我正在使用以下命令构建我的应用程序:

世博会构建:安卓

然后我从 expo.io 下载apk。

该密钥仅限于 GCP 控制台中的安卓应用。 我已经验证了我的app.json中的软件包名称与限制中的名称匹配,并且我从"expo fetch:android:hashes"命令中获得了SHA-1指纹。

正如我所说,这在模拟器(带有 IP 受限密钥(中工作正常,但在手机上运行时则不行。 我错过了什么吗?

检查您是否像这样在清单文件中使用元数据。

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

最新更新