我正在尝试通过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查看调用)
我已经添加并使用了Objective-C中编写的库,如MagicalRecord,MBProgressHUD在Swift项目上没有任何问题。
我上传了一个演示Xcode项目here。
有什么方法可以解决这个问题吗?
答案 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'
注意:
尽管如此,上述修复程序引入了新警告,请参阅以下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>