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

What's the difference between just open Package.swift & use `swift package generate-xcodeproj` then open the generated xcodeproj file?

我按照 Vapor Website Docs,创建了 hello 项目。 VaporDocs

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

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

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

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

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

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

当您在终端中处理项目时,您会使用像

这样的命令
swift package update
swift build
swift run
swift package generate-xcodeproj

这些命令适用于隐藏的 .build 文件夹,swift package generate-xcodeproj 生成的 Xcode 项目也适用于 .build 文件夹。 xcodeproj 的唯一缺点是,如果您更改 Package.swift 或手动(在 Xcode 之外)add/delete Sources 文件夹中的一些文件,那么您必须 运行 只是 swift package generate-xcodeprojswift package update && swift package generate-xcodeproj.

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