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 example
com.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 API 密钥“Google Maps API v3”不适用于 Google Places API?