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'
注:
尽管上述修复引入了新的警告,请参阅以下内容 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=] 在构建设置标志中。
我正在尝试为我正在通过 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'
注:
尽管上述修复引入了新的警告,请参阅以下内容 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=] 在构建设置标志中。