此项目演示了使用 Swift Package Manager (SPM) 管理 iOS 项目依赖项的可行方法。 它已使用 Xcode 9.1、Swift 4 和 SPM v4 描述格式进行测试。
注意:目前,SPM 中官方尚不支持 iOS 目标或相关的系统库。
安装 xcodeproj
ruby 库:sudo gem install xcodeproj
在项目根目录中运行 ruby generate-project-dependencies.rb
。 这将拉取在 Package.swift
中定义的依赖项,然后生成并修改一个 *Dependencies* 项目,该项目随后作为子项目包含在示例项目中。
在 Xcode 中打开 SwiftPackagesWithiOS.xcodeproj
构建主目标(你可能需要手动构建 *Dependencies* 子项目的目标)。
这将构建一个简单的应用程序,该应用程序依赖于 RxSwift。 选择 RxSwift 是因为它展示了如何处理从 Objective-C 生成的模块。
最终结果将是一个标准的 iOS 应用程序,每个依赖项的静态框架都嵌入在 bundle 中。
如果愿意,你可以动态链接依赖项,方法是从 generate-project-dependencies.rb
中删除 config.build_settings['MACH_O_TYPE'] = 'staticlib'
行。 如果你这样做,你需要 将依赖项嵌入到你的主应用程序目标中。
你可以逐步浏览提交记录以查看采取了哪些步骤,以下是该过程的简要概述。
(此过程尚未在 Xcode 8.3 和 Swift 3.1 中进行测试)
.deps-sources
中,但并非必须隐藏)generate-project-dependencies.rb
中完成的)