Swift包管理器导致Alamofire产生错误

时间:2016-04-24 22:16:13

标签: swift mongodb xcode7 alamofire swift-package-manager

我有一个Xcode项目,它使用cocoapods嵌入Alamofire库。 我的Podfile如下所示:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!
pod 'Alamofire', '~> 3.3'

现在,我需要使用另一个库,顺便提一下,它是Swift的MongoDB驱动程序。鉴于我在iOS开发领域相对较新,我可以方便地在Podfile中添加另一行提及MongoDB驱动程序,但是,它不能用作cocoapod。在驱动程序的GitHub存储库中,指定为了安装它,只需将库添加到Package.swift文件中。

花了一些时间来计算如何安装Swift Package Manager,但我最终做到了。现在,就官方文件而言,

  

软件包管理器将与Swift 3一起发布,目前正在发布   仅适用于Swift 3开发快照。

按照SPM官方github repo的安装说明,我下载并安装了最新的开发快照(截至2016-04-12)。此外,我遵循了XCode 7.3(我的版本)的其余相关说明,现在当我运行swift build --version时,终端显示预期的输出Apple Swift Package Manager 0.1

当我运行xcrun --find swift时,它会显示:

/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2016-04-12-a.xctoolchain/usr/bin/swift

当我运行swift --version时,它会显示:

Apple Swift version 3.0-dev (LLVM 752e1430fc, Clang 3987718dae, Swift 36739f7b57)

很抱歉这么详细的介绍,但这是问题

当我从Xcode 7.3默认工具链更改为XCode Swift开发快照以便使用SPM时,当我尝试在重新启动Xcode之后构建项目时(为了使工具链发生更改),编译器会生成一个使用默认工具链时,Alamofire库的错误很多,之前有过这样的错误。

Xcode errors

以下是问题: 如何解决这些问题,以便我使用SPM导入必要的MongoDB驱动程序并同时导入Alamofire pod而不会出现这些错误?

我的假设是Alamofire是用Swift 2.2编写的,但是为了运行SPM并构建项目,需要swift 3.0 dev,因此,错误可能与swift的冲突版本有关。如果我错了,请纠正我。

我对SPM内部如何工作以及如何将SPM与Xcode 7.3连接起来的理解有限,即使我从官方Apple文档中读取相应的文档,所以我们非常感谢任何帮助/解释!

1 个答案:

答案 0 :(得分:0)

你不能混合Swift 2和Swift 3.所以你不能做你想要的。找一个针对Swift 2的mongo库,或者使用已经移植到Swift 3的Alamofire的分支。

现在,即便如此,我也不确定你是否能够做你想做的事,你没有具体说明你如何使用SwiftPM,但它还不支持iOS开发,所以......