使用 Swift 包管理器时,如何生成 Xcode 项目文件用于开发

When using Swift Package Manager how can I generate an Xcode project file for development

我正在使用新的开源 Swift 包管理器并且能够下载文件。 我希望管理员根据检索到的包创建一个 "development environment"(通过 Xcode)。

有人处理过这个吗?

更新:如其他答案中所述,您现在可以使用此命令生成 Xcode 项目文件:

swift package generate-xcodeproj

原回答:

Swift 包管理器 (SPM) 是跨平台的,适用于 Mac 和 Linux。 Xcode 只是 Mac OS,所以我不认为 SPM 很难与 Xcode 一起工作。

SPM 可以做两件事:

  • 将 swift 源代码编译成模块(可执行文件和库)
  • 获取依赖项(来自 git 或本地路径)

SPM 仅适用于源代码、文件夹和文件。它对 Xcode.
一无所知 还提到未来 Apple 计划添加对其他语言的支持,而不仅仅是 Swift 和 Objc。

我的回答:SPM 不会忘恩负义 Xcode。但是因为它是开源的,所以任何人都可以制作自己的分支并添加可以生成 Xcode 特定文件的自定义功能。

更新(2021/05/23):

随着 Xcode 获得了对 Swift 包的官方支持,目前推荐的创建包的方法是在 Xcode 中通过“Xcode > 文件 > 新建 > Swift 包".


更新(2020/11/20):

PR 3062 合并 generate-xcodeproj 将很快被标记为已弃用。


原回答:

PR #174 on the swift-package-manager 项目开始,存在用于在包的根目录中生成 Xcode 项目文件的选项:

$ swift package generate-xcodeproj

注意:使用的早期版本:

$ swift build --generate-xcodeproj

它将正式成为 Swift 3.0 版本的一部分。
但它已经在 Xcode Swift DEVELOPMENT Snapshot 2016-03-24 或更高版本中可用!

如果您安装了 Xcode 11,您现在需要做的只是 运行 这个命令,xcode-tools 将自动打开相应的 Package.swift 和解决为您在 Xcode:

中打开的项目
$ xed .

2020 年前:

我为此编写了一个小型命令行工具

它被称为 spawn: https://github.com/vinhnx/spawn

基本上,当您想试用 SPM 包时,它只是重复命令的一小部分组合:

$ swift package update # update or resolve package dependencies
$ swift package generate-xcodeproj # generate a .xcodeproj to edit on Xcode
$ xed . # open generated .xcodeproj automatically