2

在使用 CocoaPods 获取适用于 iOS 的 Google Maps SDK 时,我在导入 sdk 头文件 ( #import <GoogleMaps/GoogleMaps.h>) 时遇到问题。
我是 CocoaPods 的新手,但我认为我使用的其他库(RestKit、AFNetworking ...)一切正常。对于这些 API,我仍然需要像这样导入库,#import <AFNetworking/AFNetworking.h>而不仅仅是#import "AFNetworking". 但它工作正常。
对于 Google Maps SDK,我需要像这样导入它,这#import <Google-Maps-iOS-SDK/GoogleMaps/GoogleMaps.h>会导致编译错误,因为在 GoogleMaps.h 标头中,其他文件是这样导入的:

#import <GoogleMaps/GMSCameraPosition.h>
#import <GoogleMaps/GMSCameraUpdate.h>
#import <GoogleMaps/GMSCircle.h>
...

我错过了什么?

4

2 回答 2

5

您不必使用<和导入与 CocoaPods 链接的任何内容>。它应该只是#import "Foo.h". 对于基于我的测试项目的谷歌地图,我只需要使用#import "GoogleMaps.h"它并正确导入。确保您安装的是最新版本的 CocoaPods(pod --version当前为 0.21.0),否则您可能需要更新它([sudo] gem update)。还要确保您打开的是创建的xcworkspace文件而不是xcodeproject

于 2013-07-03T15:56:40.093 回答
0

我遇到了同样的问题(并且正在使用 cocoapods),特别是找不到错误“GoogleMaps.h”文件的地方。我的解决方案(如果上述方法无效)是您的 Pod 的目标支持文件未能包含“GoogleMaps.h”的正确标头路径。

步骤1

如果您在 Finder 中检查您的项目目录,依次单击 Pods 目录、Public 目录和 GoogleMaps 目录,您会注意到还有第二个GoogleMaps 目录。在第二个 GoogleMaps 目录中包含与 GoogleMaps pod 有关的头文件。现在是时候检查 Pods 目标支持文件是否将此路径作为 GoogleMaps 的标头路径。

第2步

关闭 Xcode 项目。转到项目的父目录。对我来说,这是我的主目录,可以在cd ~. 遍历 Pod 的 Target 支持文件:

cd ~/{your_project_name}/Pods/Target Support Files/Pods

然后在您喜欢的编辑器中打开您的 Pods.debug.xcconfig 文件:

vi Pods.debug.xcconfig

编辑行

HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/GoogleMaps"

使用新的标题路径

HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/GoogleMaps/GoogleMaps"

保持 Pods.debug.xcconfig 的其余部分不变。对 Pods.release.xcconfig 遵循相同的过程。

步骤#3

重新打开您的 .xcworkspace 文件。清理您的项目(cmd-shift-k),然后重新构建(cmd-b)。

于 2015-12-25T15:14:30.147 回答