GoogleMaps(GMSView)无法在iOS中显示

时间:2015-08-17 15:37:13

标签: ios xcode swift google-maps gmsmapview

我已合并以下内容:

  1. 尝试通过GoogleMaps/GoogleMaps.h桥接标题导入GoogleMapsM4B/GoogleMaps.hObj-C文件
  2. 在我的AppDelegate.swift (didFinishLaunchingWithOptions)方法中手动输入iOS API密钥。
  3. 清理项目(命令+ shift + k)
  4. 关闭/重新启动Xcode
  5. 卸载/重新安装Xcode
  6. 几乎所有其他人都提出的建议。我花了两天时间试图解决这个问题。有谁知道这个问题的解决方案?

    控制台投诉是:

    > "2015-08-17 18:02:19.899 Project[608:10014] ClientParametersRequest
    > failed, 3 attempts remaining (0 vs 6). Error
    > Domain=com.google.HTTPStatus Code=400 "The operation couldn’t be
    > completed. (com.google.HTTPStatus error 400.)" UserInfo=0x790bc050
    > {data=<CFData 0x7925cb40 [0x22da9a8]>{length = 145, capacity = 256,
    > bytes = 0x3c48544d4c3e0a3c484541443e0a3c54 ... 3c2f48544d4c3e0a}}
    > 2015-08-17 18:02:19.899 randoPracty[608:10014] Google Maps SDK for iOS
    > (M4B) version: 1.10.17867.0 2015-08-17 18:02:19.959
    > randoPracty[608:10014] ClientParametersRequest failed, 2 attempts
    > remaining (0 vs 6). Error Domain=com.google.HTTPStatus Code=400 "The
    > operation couldn’t be completed. (com.google.HTTPStatus error 400.)"
    > UserInfo=0x7925cf40 {data=<CFData 0x79187b20 [0x22da9a8]>{length =
    > 145, capacity = 256, bytes = 0x3c48544d4c3e0a3c484541443e0a3c54 ...
    > 3c2f48544d4c3e0a}} 2015-08-17 18:02:24.406 randoPracty[608:10014]
    > ClientParametersRequest failed, 1 attempts remaining (0 vs 6). Error
    > Domain=com.google.HTTPStatus Code=400 "The operation couldn’t be
    > completed. (com.google.HTTPStatus error 400.)" UserInfo=0x790f4c60
    > {data=<CFData 0x786e5610 [0x22da9a8]>{length = 145, capacity = 256,
    > bytes = 0x3c48544d4c3e0a3c484541443e0a3c54 ... 3c2f48544d4c3e0a}}
    > 2015-08-17 18:02:32.797 randoPracty[608:10014] ClientParametersRequest
    > failed, 0 attempts remaining (0 vs 6). Error
    > Domain=com.google.HTTPStatus Code=400 "The operation couldn’t be
    > completed. (com.google.HTTPStatus error 400.)" UserInfo=0x7925b390
    > {data=<CFData 0x790f3760 [0x22da9a8]>{length = 145, capacity = 256,
    > bytes = 0x3c48544d4c3e0a3c484541443e0a3c54 ... 3c2f48544d4c3e0a}}
    > 2015-08-17 18:02:32.797 randoPracty[608:10014] Google Maps SDK for iOS
    > (M4B) cannot connect or validate APIKey: Error
    > Domain=com.google.HTTPStatus Code=400 "The operation couldn’t be
    > completed. (com.google.HTTPStatus error 400.)" UserInfo=0x7925b390
    > {data=<CFData 0x790f3760 [0x22da9a8]>{length = 145, capacity = 256,
    > bytes = 0x3c48544d4c3e0a3c484541443e0a3c54 ... 3c2f48544d4c3e0a}}
    > 2015-08-17 18:02:32.798 randoPracty[608:10014] Your key may be invalid
    > for your bundle ID: com.User.ProjectName"
    

6 个答案:

答案 0 :(得分:36)

只需启用&#34; Google Maps SDK for iOS&#34;对于Google Developers Console中的项目。

答案 1 :(得分:28)

我也遇到了同样的问题。首先请按照以下步骤操作。

  1. 您是否已按照this链接中提及的所有步骤进行操作?

  2. 虽然您无法通过,但请检查您的Bundle Identifier是否与您用于创建密钥的Bundle Identifier匹配。

  3. 如果一切顺利,那么问题在于框架。最初我也使用了对我不起作用的GoogleMapsM4B框架。我从this链接下载了另一个适合我的框架。

    添加新框架(GoogleMaps.framework)并从项目中删除GoogleMapsM4B框架。这解决了我的问题。希望这会对你有所帮助。

    修改

    从版本1.10.0开始,仅通过cocoapods支持框架安装。以前的版本删除了所有zip下载。请阅读this链接中“版本1.10.0 - 2015年5月”下的“从1.9.2或更早版本迁移:”部分。

答案 2 :(得分:8)

我遇到了同样的问题。在我的情况下,我必须在Googles API库的概述部分手动激活适用于iOS的Google Maps SDK和适用于iOS的Google Places SDK。

如何激活它的步骤是:

  1. 转到API库中的概述页面。
  2. 在此处选择适用于iOS的Google Maps SDK 适用于iOS的Google地方信息库SDK
  3. enter image description here

    1. 选择左上角的第二项。在屏幕截图中,它现已启用。在它被禁用之前。
    2. enter image description here

      也许这对某人也有帮助。

      亲切的问候 马特

答案 3 :(得分:3)

您能否更新您的问题以提供更多详情? (xcode版本,Google Maps Framework版本等)

  1. 仔细检查您的API密钥是否对console.developer.google.com
  2. 上的捆绑ID有效
  3. 运行时,检查并查看控制台中是否发生任何SSL错误。在我的情况下,我遇到了Google的证书问题,这干扰了我的地图图块加载。
  4. 确保您的项目中只有M4B框架或普通框架。如果你同时包括两者,我很确定它们之间存在冲突。
  5. 希望这会有所帮助;它只是在我的情况下随机开始正常工作。

答案 4 :(得分:1)

检查Xcode项目目标设置中指定的Bundle标识符以及创建Google API密钥的google项目页面。两者都应该匹配,否则GMSServices.provideAPIKey(googleMapsAPiKey)将通过,但你会得到连接错误

  

无法完成操作。 (com.google.HTTPStatus错误400。)

答案 5 :(得分:1)

我也遇到了这个问题,经过一个小时的谷歌搜索和杂耍#SO,我已经知道了这个小错误:

如果您更改了API密钥(在开发过程中的某个位置)

  

[GMSPlacesClient提供APIKey:@“YOUR_API_KEY”];

您添加到 AppDelegate.m 文件中的 didFinishLaunchingWithOptions:方法。确保它与您用于激活 Google商家信息API here

的用户相同

希望在尝试每一种解决方案后,这可能对某人有所帮助。