适用于iOS的Google Maps SDK需要GoogleMaps.bundle作为“复制包资源”下目标的一部分

当我为iOS构buildGoogleMaps SDK时,会发生这些错误。

*** Terminating app due to uncaught exception 'GMSException', reason: 'Google Maps SDK for iOS requires GoogleMaps.bundle to be part of your target under 'Copy Bundle Resources'' 

但是,GoogleMaps.framework是在复制束资源。所以,我很困惑。请告诉我这个问题的原因。

说明有点缺乏。 我希望这有帮助…

  1. 启动Xcode(简单)
  2. 将GoogleMaps.framework包拖到项目的Frameworks组中。 出现提示时, select将项目复制到目标组的文件夹中。

  3. 在项目中右键单击GoogleMaps.framework,然后selectShow In Finder。 它没有说的是…然后进入名为Resources的子文件夹

  4. 将GoogleMaps.bundle从Resources文件夹拖到您的项目中。 我们build议把它放在框架组中。 出现提示时, 确保将项目复制到目标组的文件夹未选中。

对于search到的2017年人来说,最简单的方法当然是通过pod installpod update尝试安装和更新您的pod。 最后,通过这两个命令清理项目和构build:

  1. 清理生成: Command + alt option + Shift + K
  2. 清洁项目: Command + Shift + K

那么瞧! 崩溃不会再发生。

如果您在此框架的更新版本中遇到此问题并且正在使用CocoaPods部署,请检查“ Build Phases ”的“ Copy Pods Resources ”部分:

在这里输入图像说明

显然这个部分丢失是一件事情,删除你的豆荚目录和重新运行“ 豆荚安装 ”是不足以解决它。 相反,你需要抓住这个方便的工具:

https://github.com/CocoaPods/cocoapods-deintegrate

运行这个东西,然后重新运行pod install ,你的“ Copy Pods Resources ”部分应该回来,并且当你实例化你的映射时你不会得到这个exception。

运行“pod install”为我解决了这个问题。

对于那些在Xcode 9(第一版本)和新的编译系统中使用Xcode 9的人来说,下面为我解决了这个问题。

注意:根本问题似乎是新build的系统没有正确清理,所以你需要切换回新的系统。 也是截至9/25/17谷歌的地方select器调用主线程的UI,并在Xcode中抛出错误。

– 切换到旧版本系统

– 点击你的项目文件“我的应用程序名称”

– 在“TARGETS”下单击您的应用程序名称(不testing或UITests!)

build设阶段

– [CP]复制副本资源

– 你应该看到$ {PODS_ROOT} / GoogleSomething,select那些并点击 –

– closuresXcode,运行pod安装。

– 打开Xcode,Command-Shift-K(清理,并确保你在旧的系统!)

– build立/运行,现在应该工作

终止应用程序,由于未捕获的exception“GMSException”,原因:“谷歌地图SDK的iOS需要GoogleMaps.bundle成为您的目标”复制包资源“下的一部分,

  1. GoogleMap.frameword/ResourcesfindGoogleMaps.bundle ,你会看到GoogleMap.bundle
  2. 使用GoogleMapsBase.framework将GoogleMaps.bundle拖放到Base/Framework

希望这可以帮助。 谢谢

一旦我更新到Xcode 9 Swift 3.2,我一直在这一行AppDelegate内发生崩溃:

 GMSServices.openSourceLicenseInfo() 

我一直使用格伦的回答来清理那个肯定奏效的项目,但最终还是发生了崩溃。

为了解决这个问题,我不得不按照Google Maps API安装中的指示进行操作

跟随:

步骤2:安装SDK手动安装