通过CocoaPods添加Google Maps for iOS的Swift项目中的链接器错误

我试图添加一个Swift项目的谷歌地图SDK,我正在通过CocoaPods工作,因为CocoaPods现在支持Swift。

这是我的podfile。

source 'https://github.com/CocoaPods/Specs.git' use_frameworks! platform :ios, '7.0' pod 'Google-Maps-iOS-SDK' 

Pod安装成功完成,我可以像import GoogleMaps一样import GoogleMaps框架,而不会出现任何编译错误。

但是,我继续前进,添加一个UIView,并将其类设置为GMSMapView并添加一个IBOutlet到我的视图控制器,并build立项目。 我得到以下错误。

链接器命令失败,退出代码1(使用-v查看调用)

在这里输入图像说明

我已经在Swift项目中添加并使用了像Objective-C中的MagicalRecord,MBProgressHUD一样的库,没有任何问题。

我也在这里上传了一个演示Xcode项目。

任何方式来解决这个问题?

您面临的问题是CocoaPods上的错误和格式错误的podspec的组合。 检查这个更多的信息。

随意使用这个podspec:

https://raw.githubusercontent.com/Reflejo/GoogleMapsPodspec/master/Google-Maps-iOS-SDK.podspec.json

…在您的Podfile中:

 pod 'Google-Maps-iOS-SDK', :podspec => "https://raw.githubusercontent.com/Reflejo/GoogleMapsPodspec/master/Google-Maps-iOS-SDK.podspec.json" 

Google工程师的回应:

我相信这个bug现在已经固定在1.10.0。 作为正式支持CocoaPods的一部分,我们更改了iOS CocoaPod的Google Maps SDK的名称。 请更新你的Podfile像这样:

 source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.3' use_frameworks! pod 'GoogleMaps', '1.10.0' 

( 这个信息的来源 )

注意:

尽pipe如此,上面的修复引入了一个新的警告,请参阅以下链接 。

因此,我个人build议您使用pod 'Google-Maps-iOS-SDK', :podspec => "https://raw.githubusercontent.com/Reflejo/GoogleMapsPodspec/master/Google-Maps-iOS-SDK.podspec.json"直到这个bug将会在更新版本的Google Maps iOS SDK中得到解决,或者通过在构build设置标志中join-Wl,-no_compact_unwind来简化这个警告。