将XCodeProj转换为Package.swift

时间:2019-05-13 21:40:07

标签: swift xcode

我最近继承了一个迅速的项目,并且希望在Linux VM上进行开发,而不是在我拥有的动力不足的Mac上进行开发。我已经找到了很多有关如何从Package.swift到xcodeproj的教程。但是我还没有找到其他可以发展的方向(Package.swift的xcodeproj)。看来我需要Package.swift才能使用swift cli(swift构建)。

  1. 有没有Package.swift文件的构建方法吗?
  2. 有没有办法做到这一点呢?
  3. 是否有技术上的原因我们不能从xcodeproj转到Package.swift?

1 个答案:

答案 0 :(得分:1)

1./2。 Package.swift文件在内部转换为一组swiftc命令。 如果在完全正常运行的Swift程序包上运行swift build -v(详细),则可以看到正在运行的命令。使用这些命令,您可能能够弄清楚如何在没有Package.swift的情况下编译任何Swift源代码集合。

对于一个框架,一个命令可能看起来像这样:

swiftc -module-name TestPackage -emit-dependencies -emit-module -c Path/to/Sources/*.swift -Onone -g -enable-testing -j8 -DSWIFT_PACKAGE -DDEBUG -Xfrontend -color-diagnostics

编译可执行文件时,可能会有其他命令链接标准库等。

3。 Xcode的功能集远远超过了Swift软件包的功能(例如.app捆绑包,情节提要,Metal源文件,ObjC,C,C ++等)

但是,您可以通过运行swift package init --type library|executable创建Package.swift文件,将命令行项目转换为Swift软件包。然后,您可以在Package.swift文件中为目标指定一个path参数:

.target(name: "YourTarget", path: "Path/To/Your/Swift/Files")