我有一个 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 包管理器,但我最终还是做到了。现在,据官方文档所述,
包管理器将与 Swift 3 一起发布,目前仅在 Swift 3 开发快照中可用。
并按照 SPM 官方 github repo 的安装说明,我下载并安装了最新的开发快照(截至 2016 年 4 月 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 Development Snapshot 以使用 SPM 以及在重新启动 Xcode 后尝试构建项目时(为了进行工具链更改),编译器会生成很多错误关于 Alamofire 库,它以前在使用默认工具链时工作过。
问题是: 如何解决这些问题,以便我使用 SPM 导入必要的 MongoDB 驱动程序并同时导入 Alamofire pod 而不会出现这些错误?
我的假设是 Alamofire 是用 Swift 2.2 编写的,但是为了运行 SPM 和构建项目,需要 swift 3.0 dev,因此,错误可能与 swift 的冲突版本有关。如果我错了,请纠正我。
我对 SPM 的内部如何工作以及如何将 SPM 与 Xcode 7.3 连接的理解有限,即使我从 Apple 官方文档中阅读了相应的文档,因此感谢任何帮助/解释!