将XCodeProj转换为Package.swift
我最近继承了一个swift项目,我更喜欢在Linux虚拟机上进行开发,而不是在动力不足的Mac上。我找到了很多关于如何从Package.swift到xcodeproj的教程。但是我还没有找到任何可以转向另一个方向的东西(xcodeproj到Package.swift)。似乎我需要Package.swift才能使用swift cli(swift build)将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
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机器的权限,所以我无法告诉您如何在那里操作。