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

通过CocoaPods添加Google Maps for iOS的Swift项目中的链接器错误,ios,google-maps,swift,cocoapods,google-maps-sdk-ios,Ios,Google Maps,Swift,Cocoapods,Google Maps Sdk Ios,我正试图通过CocoaPods为我正在进行的Swift项目添加内容,因为CocoaPods现在支持Swift 这是我的播客文件 source 'https://github.com/CocoaPods/Specs.git' use_frameworks! platform :ios, '7.0' pod 'Google-Maps-iOS-SDK' Pod安装成功完成,我可以像这样导入框架import GoogleMaps,而不会出现任何编译错误 但随后我继续添加了一个UIView,并将其类设

我正试图通过CocoaPods为我正在进行的Swift项目添加内容,因为CocoaPods现在支持Swift

这是我的播客文件

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查看调用)

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

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


有没有办法解决这个问题?

您面临的问题是CocoaPods上的一个bug和一个格式错误的podspec的组合。了解更多信息

请随意使用此podspec:

。。。在您的播客文件中:

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

谷歌工程师的回应:

我相信这个错误现在已经在1.10.0中修复了。作为正式支持CocoaPod的一部分,我们已经更改了iOS CocoaPod的Google地图SDK的名称。请按以下方式更新您的播客文件:

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

pod 'GoogleMaps', '1.10.0'
()

注:

尽管如此,上面的修复引入了一个新的警告,请参见下面的内容


因此,我个人建议您继续使用
pod‘谷歌地图iOS SDK’,:podspec=>”https://raw.githubusercontent.com/Reflejo/GoogleMapsPodspec/master/Google-Maps-iOS-SDK.podspec.json“
直到该漏洞在新版Google Maps iOS SDK中修复,或者只需添加
-Wl来消除此警告,-没有解压
内部版本设置标志。

我正在尝试复制此问题,但我当前从pod更新中收到以下错误:
[!]无效的'Podfile'文件:未定义的方法'use\u frameworks!'为了#。更新CocoaPods可能会解决这个问题。
下面是一个将iOS版谷歌地图SDK与Swift结合使用的示例:@Brett Hi,我使用的是CocoaPods 0.36 beta 1。我认为该命令在beta 2中被删除,beta 2是当前版本。您必须使用beta 1(
sudo gem install cocoapods-v 0.36.0.beta.1
)来安装它,因为如果没有该命令,Objective-C pods将作为静态库而不是框架安装。因为GoogleMapsSDK也是一个Objective-C库,所以您需要该命令。我在写的一篇文章中进一步解释了这一点,当时我正在用CoCoapods0.35(发行版)构建。我刚刚卸载了cocoapods发行版并安装了
cocoapods-0.36.0.beta.2
。我使用我的github示例测试了这个新配置(在删除
Podfile.lock
Pods/*
之后),它运行得非常顺利。我读了你的博文,我不明白你为什么需要
use\u框架
让iOS版谷歌地图SDK与Swift协同工作。@Brett当然,地图SDK就是这样工作的。我自己也在另一个项目中使用过它。我打算采用一种更“纯粹”的Swift方法,将SDK添加为一个框架,而不使用桥接头等等。它通常与其他Objective-C库配合使用。嗨,我刚刚试过这个。pod安装成功,但目标列表仅显示Pods项目中的pod。您能澄清一下这是什么意思吗?库已安装。但是在Pods项目的最后阶段,没有添加框架。@isuru是的,它添加了框架。你能把你的项目和/或Podfile发布到某处吗?@Isuru你的项目运行良好。您是否尝试从swift文件中导入谷歌地图?。事实上,它不是一个目标是正确的行为,因为谷歌地图已经是一个压缩在zip文件中的框架。