Google Maps API 密钥可能对您的捆绑包 ID 无效

Posted

技术标签:

【中文标题】Google Maps API 密钥可能对您的捆绑包 ID 无效【英文标题】:Google Maps API key may be invalid for your bundle ID 【发布时间】:2013-09-26 03:22:21 【问题描述】:

我们有一个过去几个月一直在工作的 Google API 密钥,但昨天它突然停止工作,这是错误。

2013-09-20 23:01:36.483 SampleApp[907:a0b] Google Maps SDK for ios cannot connect or validate APIKey: Error Domain=com.google.HTTPStatus Code=400 "The operation couldn’t be completed. (com.google.HTTPStatus error 400.)" UserInfo=0x18828d90 data=<CFData 0x14d04c30 [0x6174ec8]>length = 145, capacity = 256, bytes = 0x3c48544d4c3e0a3c484541443e0a3c54 ... 3c2f48544d4c3e0a 2013-09-20 23:01:36.484 SampleApp[907:a0b] Your key may be invalid for your bundle ID: com.company.SampleApp

我们无法找到拥有 API 密钥的帐户。我们是否可以联系 Google Maps API 团队以请求帮助识别帐户并帮助解决问题?

【问题讨论】:

您是否更改了 Xcode 中的应用程序包 ID?显然,api 密钥与您的应用程序包 id 捆绑在一起,以防止 api 滥用。如果您更改了应用程序包 ID,则不能使用相同的 api 密钥。检查一下,或者只是使用当前的 app bundle id 申请一个新的 api 密钥。 您可以通过 brettmorgan@google.com 将您的 API 密钥邮寄给我。我猜 com.company.SampleApp 不是您的实际应用程序包 ID... 你能解决这个问题吗?我遇到了同样的问题。我更改了捆绑名称,然后将其改回,即使我多次尝试重新创建应用 ID,我也会收到相同的消息... 【参考方案1】:

我发现 api key 是否用花括号括起来并没有区别。

请确保“启用适用于 iOS 的 GoogleMap SDK”

您可能还会看到reference

【讨论】:

在我的情况下,api 密钥也没有被花括号包围 [GMSServices provideAPIKey:@"api_key"];现在工作正常。谢谢。 我忘记点击了。谢谢 要详细说明这一点,必须在 Google 的开发者控制台中启用“启用适用于 iOS 的 Google Maps SDK”。当我为 android 启用 SDK 并忘记为 iOS 也这样做时,我遇到了这个错误。 这是正确的。我忙于检查代码并确保 API 密钥匹配并且忘记启用该服务! (捂脸) 谢谢。它节省了我的时间。【参考方案2】:

一步一步

1.- go Google ApisConsole

2.- select Services and activate Google Maps SDK for iOS

3.- later select API Access and Create new iOS key with your bundle identifier examplecom.example.myProject

4.- copy Api key in your Project  [GMSServices provideAPIKey:@"kajshdklasjhdakls_LTcJWZqpRJ1BQmHxX9i0lI"]; on AppDelegate

祝你好运

【讨论】:

非常感谢,花了 3 天时间来修复它。大声笑。 谢谢。这终于解决了我的问题,现在我可以看到地图正在加载。【参考方案3】:

这里有两个可能的修复方法:

可能的修复 1

在一行中,

[GMSServices provideAPIKey:@"AIzaSyDCPXPLUkK3UVrLr9msaS6-EsZ6UHbVgEq"];

api 键应该用大括号括起来。

可能的修复 2

AppDelegate 中的didFinishLaunchingWithOptions 方法中,上述行应该在您实例化根视图控制器之前出现,而不是之后。

【讨论】:

我是同样的问题,但我解决了删除花括号。【参考方案4】:

只有我的 2 美分;在生成了不起作用的 API 密钥后,我在 API 控制台的服务部分启用了适用于 iOS 的 Google 地图。我刚刚删除了我的密钥并创建了一个新密钥,嘿,这是在经过大量测试之后,所以很奇怪,这绝对是问题所在。

【讨论】:

【参考方案5】:

使用此代码:NSLog(@"my bundle id is: %@", [[NSBundle mainBundle] bundleIdentifier]); 用于识别您需要在 google apis 中生成的 Api 访问权限的捆绑标识符。

例如:我的项目 x-code 中的 Bundle 标识符为 projects.example.mymap,那么您应该将其复制并粘贴到 apiaccess 中并生成此 apikey。

如果问题仍然存在,请创建其他密钥并删除最后一个,在您的应用中使用新密钥。

祝你好运!

【讨论】:

【参考方案6】:

我遇到了同样的问题,最终在这里寻找答案无济于事。我在 Google APIs 上复制 API 密钥,每次都看到“您的密钥可能对您的捆绑 ID 无效:com。”错误。

所以我决定尝试手动输入 API 密钥,然后它就成功了。绝对值得一试,也许以某种方式通过复制/粘贴传递了特殊字符。

【讨论】:

很奇怪,但这个答案对我有帮助。我基本上从 Google API 控制台复制了密钥,然后将其粘贴到浏览器的 URL 栏中,然后再次复制它,然后将其粘贴到 Xcode 中工作正常。【参考方案7】:

只需从您的帐户启用 google map ios sdk,不要使用花括号,您将可以轻松加载 google map。

【讨论】:

【参考方案8】:

我找到了解决方案,它的出现是因为包名称不同,

您在 Google Map SDK 中使用的 iOS 应用程序名称和 创建 Xcode 项目时的组织名称应匹配。 只需匹配两个名称,您的错误就会得到解决。

【讨论】:

【参考方案9】:

这个页面上的几乎所有答案都说同样的话..这与谷歌地图sdk page..上的说明完全相同。

没有人提到的一件事是,有时此密钥需要一段时间才能在网络上传播(即您的应用可能不会立即识别它).. 所以请稍等。

还有一件事我发现有点不同的是我没有没有将 com 添加到我的包标识符的开头......所以你也可以尝试一下。

【讨论】:

【参考方案10】:

我遇到了同样的问题。在“Google Developers Console”中你应该这样做:

    按“创建新密钥”按钮 选择“服务器密钥” 按“创建” 在您的 Xcode 项目中使用此密钥

【讨论】:

以上是关于Google Maps API 密钥可能对您的捆绑包 ID 无效的主要内容,如果未能解决你的问题,请参考以下文章

Google Maps API V3 中的 API 密钥是啥?

Google Maps Geocoding API - 使用 API 密钥拒绝请求

本地主机的 Google Maps API 密钥

新的 Google API 密钥“Google Maps API v3”不适用于 Google Places API?

尽管有良好的API密钥,Google地图仍无法在我的网站上运行[关闭]

我应该采取哪些措施来保护我的Google Maps API密钥?