Cocoa Pods和Google Maps SDK

时间:2013-07-03 15:40:47

标签: google-maps-sdk-ios cocoapods

使用CocoaPods获取适用于iOS的Google Maps SDK时,我无法导入sdk头文件(#import <GoogleMaps/GoogleMaps.h>)。 我是CocoaPods的新手,但我认为我使用的其他库(RestKit,AFNetworking ......)都能正常工作。 对于这些API,我仍然需要像#import <AFNetworking/AFNetworking.h>而不是#import "AFNetworking"一样导入lib。但它运作正常 对于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>
...

我错过了什么吗?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

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

第1步

如果你在Finder中检查你的项目目录,点击Pods目录,然后点击公共目录,然后点击GoogleMaps目录,你会发现有一个第二个 GoogleMaps目录。在第二个GoogleMaps目录中包含与GoogleMaps pod相关的头文件。现在是时候检查Pods目标支持文件是否将此路径作为GoogleMaps的标题路径。

第2步

关闭Xcode项目。转到项目的父目录。对我来说,这是我的主目录,可以通过cd ~访问。遍历您的Pods的目标支持文件:

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)。