通过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
来简化这个警告。