将XCodeProj转换为Package.swift

将XCodeProj转换为Package.swift,swift,xcode,Swift,Xcode,我最近继承了一个swift项目,我更喜欢在Linux虚拟机上进行开发,而不是在动力不足的Mac上。我找到了很多关于如何从Package.swift到xcodeproj的教程。但是我还没有找到任何可以转向另一个方向的东西(xcodeproj到Package.swift)。似乎我需要Package.swift才能使用swift cli(swift build) 有没有一种不用Package.swift文件构建的方法 有没有一种方法我还没有找到 我们不能从xcodeproj转换为Package.swi

我最近继承了一个swift项目,我更喜欢在Linux虚拟机上进行开发,而不是在动力不足的Mac上。我找到了很多关于如何从Package.swift到xcodeproj的教程。但是我还没有找到任何可以转向另一个方向的东西(xcodeproj到Package.swift)。似乎我需要Package.swift才能使用swift cli(swift build)

  • 有没有一种不用Package.swift文件构建的方法
  • 有没有一种方法我还没有找到
  • 我们不能从xcodeproj转换为Package.swift,这有什么技术原因吗
  • 一,二。 Package.swift文件在内部转换为一组
    swiftc
    命令。 如果在完全工作的swift包上运行
    swift build-v
    (verbose),则可以看到正在运行的命令。使用这些命令,您可能能够了解如何在没有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
    
    编译可执行文件时,可能会有其他命令链接标准库等

    三,。 XCODE的特征集远远超过Swift包(例如.app包、故事板、金属源文件、Objc、C、C++等)的能力

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

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

    该项目是一个应用程序(使用UIKit或AppKit)?@DavidRönnqvist该项目是一个库,然后被其他应用程序使用。我知道应用程序库尚未迁移。如果,swift文件分布在多个文件夹中,我是否需要添加多个.targets?或者路径也是递归到子目录的
    有没有一种方法可以从xcode生成详细的构建,这样我就可以尝试生成匹配的包。swift?1:您可以在
    -c
    参数后手动指定每个文件的路径(这就是
    swift build
    的作用),并且可以使用通配符模式,如
    /***.swift
    ,递归地遍历目录。在Xcode中,您可以看到构建报告(cmd+9)。单击其中一个报告,然后在报告中选择构建的所需阶段(例如,“编译Swift源文件”或“链接…”阶段)。一直到所选行的右侧,您都会看到。单击它,您将看到在该阶段执行的命令。例如,如果您的包依赖于基础,则需要确保其链接。我现在没有访问Linux机器的权限,所以我无法告诉您如何在那里操作。