适用于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是在复制束资源。所以,我很困惑。请告诉我这个问题的原因。
说明有点缺乏。 我希望这有帮助…
- 启动Xcode(简单)
-
将GoogleMaps.framework包拖到项目的Frameworks组中。 出现提示时, select将项目复制到目标组的文件夹中。
-
在项目中右键单击GoogleMaps.framework,然后selectShow In Finder。 它没有说的是…然后进入名为Resources的子文件夹
-
将GoogleMaps.bundle从Resources文件夹拖到您的项目中。 我们build议把它放在框架组中。 出现提示时, 确保将项目复制到目标组的文件夹未选中。
对于search到的2017年人来说,最简单的方法当然是通过pod install
和pod update
尝试安装和更新您的pod。 最后,通过这两个命令清理项目和构build:
- 清理生成:
Command + alt option + Shift + K
- 清洁项目:
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成为您的目标”复制包资源“下的一部分,
- 在
GoogleMap.frameword/Resources
findGoogleMaps.bundle
,你会看到GoogleMap.bundle - 使用GoogleMapsBase.framework将
GoogleMaps.bundle
拖放到Base/Framework
希望这可以帮助。 谢谢
一旦我更新到Xcode 9 Swift 3.2,我一直在这一行AppDelegate内发生崩溃:
GMSServices.openSourceLicenseInfo()
我一直使用格伦的回答来清理那个肯定奏效的项目,但最终还是发生了崩溃。
为了解决这个问题,我不得不按照Google Maps API安装中的指示进行操作
跟随:
步骤2:安装SDK并手动安装