当使用Swift Package Manager时,如何为开发生成Xcode项目文件

33

我正在使用新的开源Swift Package Manager,并能够下载文件。我希望该管理器可以基于获取的软件包创建“开发环境”(通过Xcode)。

有人处理过这个问题吗?


阅读文档概述可以发现,您所要求的并不是软件包管理器的功能。在社区提案中也没有任何相关内容。 - Eric Aya
你指的是“开发环境”? - Kostiantyn Koval
1
@EricD:最近,它现在是SPM的一个功能!\o/ - Regexident
3个回答

47
更新:如其他答案中所述,您现在可以使用此命令生成Xcode项目文件:
swift package generate-xcodeproj
Swift Package Manager(SPM)是跨平台的,可以在Mac和Linux上运行。 而Xcode只适用于Mac OS,因此我认为将SPM与Xcode集成起来不会很难。
SPM可以做两件事情:
- 将Swift源代码构建成模块(可执行文件和库) - 获取依赖项(来自git或本地路径)
SPM仅能使用源代码、文件夹和文件。它对Xcode一无所知。 此外,据提到,未来苹果计划支持除Swift和Objc之外的其他语言。
我的回答:SPM将不会与Xcode集成。但由于它是开源的,任何人都可以制作自己的分支,并添加一些自定义功能,以生成特定于Xcode的文件。

6
这个答案正在 meta 上被讨论。 - Lightness Races in Orbit

40

更新(2021/05/23):

随着Xcode正式支持Swift Packages,如今创建软件包的推荐方式是通过"Xcode > File > New > Swift Package"在Xcode中创建。


更新(2020/11/20):

随着PR 3062的合并,generate-xcodeproj即将被标记为已废弃。


原始回答:

截至 PR #174 swift-package-manager项目中,存在一个选项可在包的根目录中生成Xcode项目文件:

$ swift package generate-xcodeproj

注意:早期版本使用了:
$ swift build --generate-xcodeproj

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


2
@RyanCollins:谢谢,已更新。没有必要对正确但过时的答案进行负评,只需编写评论(就像您所做的那样)请求更新编辑即可。 - Regexident
1
此答案目前正在Meta上讨论。 - SecretAgentMan
@Regexident,你有没有想法,将会用什么来替代 swift package generate-xcodeproj?或者我们应该直接从 Xcode 开始项目,并从那里集成 Swift PM? - Avihu Turzion
随着 Xcode 中的 "文件 > 新建 > Swift 包" 功能的推出,我不认为苹果会提供 swift package generate-xcodeproj 的替代品。他们只是需要后者作为临时解决方案,直到该功能被纳入 Xcode。 - Regexident

4

如果您已经安装了Xcode 11,现在只需要运行此命令,xcode-tools将自动打开适当的Package.swift文件,并将其解析为一个项目,供您在Xcode中打开:

最初的回答

$ xed .

2020年之前:

我写了一个小的命令行工具

它叫做spawn: https://github.com/vinhnx/spawn

基本上,当你想尝试一个SPM包时,它只是一些重复命令的小组合:

(注:SPM是一种JavaScript软件包管理器)

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接