Google地图无法在iPhone模拟器上运行

时间:2012-12-22 22:26:40

标签: iphone google-maps sdk ios-simulator google-maps-sdk-ios

我已逐步实施了“获取适用于iOS的Google Maps SDK”

最后模拟器运行正常没有发现错误,但地图除了标记外没有任何细节。

如图所示:

Screnshot of simulator

底部的输出也有这样的信息:

  

2012-12-23 01:06:59.869 GogleMap [3680:c07] GMSZoomTableQuadTree缺少用于> tile类型的根缩放表(mapType:10)   2012-12-23 01:07:00.042 GogleMap [3680:1b03]适用于iOS版的Google Maps SDK:1.0.1.1154   2012-12-23 01:07:00.375 GogleMap [3680:c07] ClientParametersRequest失败,3次尝试>剩余。错误域= DASHConnectionError代码= 100“无法完成操作。   (DASHConnectionError错误100。)“

请提前帮助,并提前致谢。

20 个答案:

答案 0 :(得分:52)

解决:我认为我们在这个过程中都跳过了一个很小但非常重要的步骤。

  

要开始使用,请在Google API控制台中启用Google Maps SDK for iOS服务以及其他Google API。

enter image description here

Google APIs Console中启用GoogleMap SDK for iOS后,您的应用会在下次运行时正确加载磁贴。祝你好运!

答案 1 :(得分:8)

@ user1924208我遇到了同样的问题。我不知疲倦地在互联网上搜索答案,不幸的是我觉得我们运气不好。 Google API控制台可能会向您显示Google Maps v.3的API密钥,该密钥不是Google Maps iOS API密钥。因此,当您将其用作API密钥时,验证请求将始终失败。

似乎他们因为某种原因没有为iOS版本发布许多API密钥。尽管令人沮丧,但您只需要等到收到他们的电子邮件(不确定何时会......)。

您可以确认这一点,因为用任意随机字符串替换当前API密钥将产生相同的结果。顺便说一句,这也会在模拟器和真实设备上产生相同的结果,我已经测试过了。

<强>更新

我刚从谷歌地图收到一封电子邮件,我的API密钥现已可用。我用GMSServices关闭了MKMapKit,事情正在发挥作用。现在看起来他们对发布API密钥感觉更舒服一点,所以希望你很快就可以获得它。

答案 2 :(得分:5)

抬头,确保您还在“服务”标签中启用了“Google Maps SDK for iOS”。

我收到了类似的错误,直到我意识到我只生成了一个API密钥但忘记启用该服务。解决了我的问题。

SDKDemos[160:907] ClientParametersRequest failed, 0 attempts remaining (0 vs 5). 
Error Domain=com.google.Maps.GMSDASHConnection Code=100 
"The operation couldn’t be completed. (com.google.Maps.GMSDASHConnection error 100.)"

答案 3 :(得分:3)

我遇到了类似的问题,但我确信API密钥很好,因为SDK包中的示例项目使用了我在实际应用中使用的密钥 - 捆绑ID对。如果您的API密钥似乎无效,则最新的(1.2)版本的sdk实际上会发出警告。 它无法显示地图的原因是我没有在项目设置的目标摘要选项卡中填写内部版本号。事实证明,您绝对需要在Info.plist中设置CFBundleVersion才能使Google地图正常工作,否则地图会保持空白状态,不会显示任何错误或警告,甚至会发出网络请求。

答案 4 :(得分:2)

我有同样的问题。 我认为问题是我的项目“捆绑式标识符”与我的Google API控制台中的捆绑标识符不同

所以我为我的Google API控制台添加了更多的捆绑版本:从Project Navigator中选择您自己的项目,然后选择您的应用程序的目标。在标签摘要中,请记住捆绑标识符中的字符串。

转到Google API控制台页面,在控制台中选择“API访问”窗格,找到iOS应用的“关键”部分,选择“编辑允许的iOS应用”...并添加您在上面记得的捆绑包。重新运行你的项目并完成!

答案 5 :(得分:1)

我遇到了同样的问题,然后我转到谷歌控制台并点击“生成新密钥”并使用新密钥工作!

答案 6 :(得分:1)

从不同的角度对此进行跟进:

Google地图框架的更高版本中存在一个错误,如果应用程序位于后台,则无法将地图实例化/创建/添加到superview。

当您这样做时,生成的地图将显示为左下角的Google徽标以外的完全空白。原因是操作系统在后台运行时不允许OpenGL渲染;一旦它被预先考虑,他们只需要重新启动渲染器。

谷歌终于修复此问题(大约一年后),所以请升级到最新版本。

如果您使用Google for Business:

pod 'Google-Maps-iOS-SDK-for-Business', '~> 1.11.1'

对于旧版本,此问题的重复是here

Visual repro:

OpenGL Bug

答案 7 :(得分:1)

重要:如果您想在iOS设备上练习谷歌地图,只需下载 GoogleMaps.framework

我在不知情的情况下下载了 GoogleMapsM4B.framework 并遇到了类似问题,您的密钥可能对您的套件ID无效:com.company.example&#39;

如果您想在项目中使用 GoogleMapsM4B.framework ,那么  1.您应该在企业支持门户网站(Google的网站)上请求支持  2.您必须在Google控制台网站中启用 Google Maps Mobile SDK for Work 而非 Google Maps SDK for iOS

如果您想使用 GoogleMaps.framework 而非 GoogleMapsM4B (商家地图),那么您无需申请支持中心,只需启用Google Maps SDK即可iOS的谷歌控制台网站。

您可以找到适用于iOS的Google Maps SDK与适用于工作的Google Maps Mobile SDK(M4B)之间的主要差异。

并将GoogleMaps / GoogleMaps.h导入您的文件,并将您的api密钥传递给以下方法:

[GMSServices provideAPIKey:@“Your API Key“];

(或)

如果您拥有有效的许可,请下载GoogleMapsM4B.framework并将GoogleMapsM4B / GoogleMaps.h导入您的文件,并将api传递给同一方法[GMSServices provideAPIKey:@“Your API Key“] 但我猜你只有在购买许可证后才可以拿到这把钥匙。

所以我遇到的主要问题是......而不是下载 GoogleMaps.framework 我已经下载 GoogleMapsM4B.framework 并添加到我的项目中。每次我运行我的项目时都会给我一个错误说&#34;您的密钥可能对您的软件包ID无效:com.example.sampleapp&#34;

现在我的项目工作正常。

答案 8 :(得分:0)

遇到同样的问题。当然,一切都正确。 问题是你的API密钥需要一些时间才能正常工作(可能有关它的信息通过谷歌服务器传播,这意味着你最近的服务器还不知道新的API密钥)。

因此,在API密钥创建错误停止后约5分钟内,我已完全使用API​​密钥。 (请注意,我没有从谷歌收到任何电子邮件)。

答案 9 :(得分:0)

只需确保从启用了位置

模拟器选项功能->位置-> Apple

enter image description here

答案 10 :(得分:0)

尽量不在任何常量上保存API Key。直接传递值。如果它不起作用,尝试重新生成API Key Map肯定会起作用

MapServices.ProvideAPIKey ("AIzaSyAnxfhuAwEqdVhQpoUkGFZpsBukOSXVFr0");

快乐编码:)

答案 11 :(得分:0)

首先,让你的钥匙是正确的。然后检查您是否启用了Google Maps SDK for iOS。比在设备上运行app,而不是模拟器。

答案 12 :(得分:0)

对我来说,这是因为我的应用程序的包标识符已被更改。在为新的捆绑包标识符获取新的API密钥之后,它又开始工作了。

答案 13 :(得分:0)

我解决了这个问题如下。

  1. 转到Google Maps API控制台(旧版)。 启用的服务是适用于iOS的Google Maps SDK和Google街景图像API。
  2. 我已停用Google街景图片API。
  3. 然后,不再输出错误。

答案 14 :(得分:0)

这帮助了我:( Misspelt API密钥,因为XCode最初返回错误,除非API被{} IOS - ObjC Google Maps Api Key包围

答案 15 :(得分:0)

确保您没有更改

[捆绑标识符]

为应用程序。它应该与生成API密钥时使用的那个匹配。

答案 16 :(得分:0)

另一个抬头! 确保您应用的捆绑包标识符与Google API控制台中“iOS应用”字段中定义的捆绑ID相匹配。

答案 17 :(得分:0)

此错误表示用于初始化Google地图的无效密钥:

[GMSServices provideAPIKey:@"YOUR_API_KEY"];

该密钥由Google专门针对iOS SDK发布(显然只针对少数选择); Google Maps SDK v2和v3的密钥不适用于Apple。

确认错误确实是由无效密钥引起的一种方法是通过显示图钉。图钉不需要有效的密钥,因此它将在空的地图视图对象上可见。编辑“入门”页面https://developers.google.com/maps/documentation/ios/start#add_a_map中的示例应导致应用程序显示空白地图视图(背景为黄色背景,图钉位于中心)。

保证引脚可见的最佳方法是使用与相机和标记完全相同的坐标,请参阅代码段:

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:43.65
                                                        longitude:-79.45
                                                             zoom:6];

mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];

mapView_.myLocationEnabled = YES;
self.view = mapView_;

GMSMarkerOptions *markerOptions = [[GMSMarkerOptions alloc] init];
markerOptions.position = CLLocationCoordinate2DMake(43.65, -79.45);
markerOptions.title = @"Greater Toronto Area";

[mapView_ addMarkerWithOptions:markerOptions];

答案 18 :(得分:0)

您似乎没有指定有效的API密钥。你有吗?

答案 19 :(得分:-1)

现在Apple删除 Google 地图并添加 Apple 地图,。

检查以下内容:

  1. 减少地图视图中的缩放。

  2. iOS使用的是什么版本?如果你使用的是iOS 6谷歌地图不起作用Apple地图必须有效。

  3. 有时,模拟器不支持某些核心功能主义者,请检查设备的功能。

  4. 确保委托和数据源必须设置。

  5. 感谢。