Google Maps SDK for iOS要求GoogleMaps.bundle成为“复制捆绑资源”下目标的一部分

时间:2013-02-07 05:48:38

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

当我为iOS构建GoogleMaps 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在拷贝包资源中。所以,我很困惑。请告诉我这个问题的原因。

10 个答案:

答案 0 :(得分:174)

指示有点缺乏。我希望这有帮助...

  1. 启动Xcode(简易)
  2. 将GoogleMaps.framework包拖到框架上 你的项目组。出现提示时, 选择复制项 目的地组的文件夹。

  3. 右键单击项目中的GoogleMaps.framework,然后选择Show In 发现者。 它没有说的是......然后进入名为Resources 的子文件夹

  4. 将GoogleMaps.bundle从Resources文件夹拖到您的 项目。我们建议将其放在Frameworks组中。什么时候 提示, 确保将项目复制到目标组的文件夹中 地选择。

答案 1 :(得分:90)

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

  1. 清洁构建:Command + alt option + Shift + K
  2. 清洁项目:Command + Shift + K
  3. 然后瞧!崩溃不会再发生。

答案 2 :(得分:7)

对于那些在2017年使用Xcode 9(第一版)和新版本系统进行尝试的人,以下内容为我解决了这个问题。

注意:根本问题似乎是新的构建系统没有正确清理,因此您需要切换回旧系统。此外,截至9/25/17谷歌地方选择器正在调用主线程的UI并在Xcode中抛出错误。

- 切换到旧的构建系统

- 点击项目文件“我的应用名称”

-Under“TARGETS”点击您的应用名称(不是测试或UITests!)

- 建立阶段

- [CP]复制Pods资源

- 你应该看到$ {PODS_ROOT} / GoogleSomething,选择那些并点击 -

- 关闭Xcode,运行pod install。

- 打开Xcode,Command-Shift-K(清洁,并确保你在老建筑系统中!)

-Build / Run,现在应该可以使用

答案 3 :(得分:4)

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

答案 4 :(得分:2)

如果您通过CocoaPods安装了地图,请尝试以下步骤。

  1. 转到TARGETS>建立阶段
  2. 禁用'仅在安装时运行脚本' enter image description here

答案 5 :(得分:2)

我遇到同样的问题,请执行以下操作:

1. Go to derived folder and delete the project folder
2. Clean build and run

修正了问题

答案 6 :(得分:1)

一旦我更新到Xcode 9 Swift 3.2,我就会在AppDelegate的这一行中遇到崩溃:

GMSServices.openSourceLicenseInfo()

我一直在使用Glenn的答案清理那个肯定有效的项目,但最终崩溃仍在继续。

要解决这个问题,我必须按照Google Maps API Installation

中的说明进行操作

关注:

第2步:安装SDK 手动安装

这很容易做到,但有一点让我很困惑,所以我为了下一个人的清晰度而添加它:

一旦您阅读了手册说明,并在第4号上说:

4. Drag the following bundles into your project (when prompted, select Copy items if needed): 

enter image description here

这个东西在你下载的zip文件里面,一旦你解压缩它,里面只有2个框架:

GoogleMaps.framework
GoogleMapsCore.framework

不会有GoogleMapsBase.framework。我假设他们将它捆绑到GoogleMaps.framework

一旦到达8: Open the Build Phases tab, and within Link Binary with Libraries, add the following frameworks:号码。它列出了您必须导入的许多框架。

enter image description here

当您解压缩该zip文件并将其拖入已压缩文件并将其拖入时,问题是列出的前三个已添加的内容(实际上已添加其中两个 - GoogleMaps.frameworkGoogleMapsCore.framework)你的项目。

我一直在输入名字,什么都不会出现。

enter image description here

我从一开始就一直删除所有Google框架,并再次尝试,直到我意识到它们已经存在。基本上输入Accelerate.framework - UIKit.framework的所有内容的名称,您应该很好。

答案 7 :(得分:1)

对于我来说,手动安装中存在相同的问题。

1。右键单击项目中的GoogleMaps.framework,然后选择“在Finder中显示”。

  1. 双击或打开此GoogleMaps.framework。我们可以看到文件夹“ Resources”。 (我在可用的GoogleMaps.bundle中添加了“屏幕截图”图像)
  2. 点击资源文件夹,我们可以找到GoogleMaps.bundle

enter image description here

  1. 现在只需将GoogleMaps.bundle拖放到您的项目中即可。确保未选中将项目复制到目标组的文件夹。 enter image description here

注意:确保未选择“如果需要,复制项目”目标组的文件夹。参见屏幕截图。

现在清洁Command + Shift + K或Xcode->产品->清洁

这可能对某人有帮助。

答案 8 :(得分:0)

由于未捕获的异常“GMSException”而终止应用,原因是:'Google Maps SDK for iOS要求GoogleMaps.bundle成为“复制捆绑资源”下目标的一部分

  1. GoogleMaps.bundle中找到GoogleMap.frameword/Resources,您会看到GoogleMap.bundle
  2. 使用GoogleMapsBase.framework
  3. GoogleMaps.bundle拖入Base/Framework 希望这可以提供帮助。感谢

答案 9 :(得分:0)

这样,我已经解决了问题。

 1. Delete the derived folder.
 2. pod update
 3. Clean Project and build.

就这样