Swift 项目中的链接器错误,其中包含通过 CocoaPods 添加的 Google 映射 iOS

Linker errors in a Swift project with Google Maps for iOS added via CocoaPods

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

这是我的播客文件。

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

pod 'Google-Maps-iOS-SDK'

Pod 安装成功完成,我可以像这样导入框架 import GoogleMaps 而没有任何编译错误。

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

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

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

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

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

您面临的问题是 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"

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 中得到修复,或者通过添加 [= =12=] 在构建设置标志中。