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

时间:2015-02-09 07:51:57

标签: ios google-maps swift cocoapods google-maps-sdk-ios

我正在尝试通过CocoaPods为我正在处理的Swift项目添加Google Maps SDK for iOS,因为CocoaPods现在支持Swift。

这是我的podfile。

source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
platform :ios, '7.0'

pod 'Google-Maps-iOS-SDK'

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

然后我继续前进并添加了一个UIView并将其类设置为GMSMapView并将IBOutlet添加到我的视图控制器并构建项目。我收到以下错误。

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

enter image description here

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

我上传了一个演示Xcode项目here

有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:7)

您遇到的问题是CocoaPods上的错误和格式错误的podspec的组合。 Check this了解更多信息。

随意使用此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"

答案 1 :(得分:2)

Google工程师的回复:

我相信这个错误现在已在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'

source of this information

注意:

尽管如此,上述修复程序引入了新警告,请参阅以下link

因此,我个人建议您继续使用pod 'Google-Maps-iOS-SDK', :podspec => "https://raw.githubusercontent.com/Reflejo/GoogleMapsPodspec/master/Google-Maps-iOS-SDK.podspec.json",直到在较新版本的Google Maps iOS SDK中修复该错误,或​​者通过在构建设置标记中添加-Wl,-no_compact_unwind来隐藏此警告。 / p>