首页 > 解决方案 > 只打开 Package.swift 并使用 `swift package generate-xcodeproj` 然后打开生成的 xcodeproj 文件有什么区别?

问题描述

我遵循了 Vapor 网站文档,创建了 hello 项目。 蒸汽文档

在 hello 项目路径下,swift build在终端中输入。但是当打开 Package.swift 时,Xcode 又开始获取蒸汽了。

为什么?所有依赖项存储库都在.build路径中不是吗?为什么 Xcode 重新开始获取 Vapor?

swift package generate-xcodeproj可以帮助生成 xcode 项目,似乎所有依赖项都不再是包了。只是组。

swift package generate-xcodeproj只打开 Package.swift 并使用然后打开生成的 xcodeproj 文件有什么区别?

用 Xcode 打开 Pacakge.swift,获取 Vapor 很慢。有没有更好的方法?

就像告诉 Xcode 一切都在./build路上。

标签: swiftxcodevaporswift-package-manager

解决方案


当您在终端中处理项目时,您可以使用以下命令

swift package update
swift build
swift run
swift package generate-xcodeproj

这些命令适用于隐藏.build文件夹,并且由该文件夹生成的 Xcode 项目也swift package generate-xcodeproj适用于该.build文件夹。xcodeproj如果您更改Package.swift或手动(在 Xcode 之外)从文件夹中添加/删除一些文件,唯一的缺点是Sources您必须运行或者swift package generate-xcodeproj运行swift package update && swift package generate-xcodeproj.

当您通过双击打开项目Package.swift时不再使用经典的 xcodeproj,现在它是完全动态的,您可以Package.swift即时编辑和文件,无论在 Xcode 或 Finder 中,它都会跟踪所有更改。虽然听起来很酷,但它的工作并不完美,我仍然更喜欢经典xcodeproj,因为它在需要时并不难执行swift package generate-xcodeproj。据我所知,没有办法说 Xcode.build在动态模式下使用文件夹,它使用DerivedData文件夹来存储依赖项。


推荐阅读