Google maps sdk ios 可可豆和谷歌地图SDK
使用CocoaPods获取Google Maps SDK for iOS时,导入SDK头文件时遇到问题(Google maps sdk ios 可可豆和谷歌地图SDK,google-maps-sdk-ios,cocoapods,Google Maps Sdk Ios,Cocoapods,使用CocoaPods获取Google Maps SDK for iOS时,导入SDK头文件时遇到问题(#import)。 我是CocoaPods的新手,但我认为我与我使用的其他库(RestKit、AFNetworking…)的一切都很好。 对于这些API,我仍然需要像这样导入lib#import,而不仅仅是#import“AFNetworking”。但它很好用。 对于Google Maps SDK,我需要像这样导入它#import,这会导致编译错误,因为在GoogleMaps.h头中,其他文件
#import
)。我是CocoaPods的新手,但我认为我与我使用的其他库(RestKit、AFNetworking…)的一切都很好。 对于这些API,我仍然需要像这样导入lib
#import
,而不仅仅是#import“AFNetworking”
。但它很好用。对于Google Maps SDK,我需要像这样导入它
#import
,这会导致编译错误,因为在GoogleMaps.h头中,其他文件是这样导入的:
#import <GoogleMaps/GMSCameraPosition.h>
#import <GoogleMaps/GMSCameraUpdate.h>
#import <GoogleMaps/GMSCircle.h>
...
#导入
#进口
#进口
...
我遗漏了什么吗?您不必使用
导入任何与CoCoapod链接的内容。它应该是#import“Foo.h”
。在基于我的测试项目的GoogleMaps中,我只需使用#import“GoogleMaps.h”
,就可以正确导入。确保您正在安装最新版本的CocoaPods(pod--version
当前为0.21.0),否则您可能需要更新它([sudo]gem update
)。还要确保您打开的是创建的xcworkspace
文件,而不是xcodeproject
我遇到了相同的问题(我正在使用cocoapods),特别是在找不到错误“GoogleMaps.h”文件的地方。我的解决方案(如果上述方法不起作用)是,您的POD的目标支持文件无法包含“GoogleMaps.h”的正确头路径
步骤1
如果您在Finder中检查项目目录,单击Pods目录,然后单击Public目录,然后单击GoogleMaps目录,您会注意到有一个第二个GoogleMaps目录。在第二个GoogleMaps目录中包含与GoogleMaps pod相关的头文件。现在是时候检查Pods目标支持文件是否将此路径作为GoogleMaps的头路径
步骤2
关闭Xcode项目。转到项目的父目录。对我来说,这是我的主目录,可以在cd~
上找到。遍历到POD的目标支持文件:
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) 在CocoaPods主页上,有一行
#import
。我正在运行CocoaPods的0.21.0版本。如果我尝试使用简单的引号导入,则无法完成任何操作。此外,目标libPods FRAMEWORK.a都是红色的,就好像它们从未构建过一样。有什么想法吗?它不会自动完成,但无论如何它都应该链接。今天我将CocoaPods更新为0.22.1版本。一切正常。更新后我再次运行pod安装,现在我可以像你说的那样导入文件了。因此,感谢您为我指引了正确的方向。就我而言(至少)它是Pods/Header/Public
,而不是Pods/Public
。