Swift包管理器生成Xcode项目时如何保持组织结构

4

当从Swift Package Manager生成时,在Xcode中是否可能维护一个分组结构层次?每次运行以下命令:

swift package generate-xcodeproj

我失去了所有群组(而不是文件夹,这个正常工作)的结构。在使用Xcode编程时,我通常喜欢有一定程度的视觉组织,而这种组织对于代码来说是不可见的(例如群组而不是文件夹)。


1
你为什么不使用与组结构中所需相同的文件系统结构来管理你的文件呢? - Daniel Dunbar
是的,例如,想象一下创建一系列包含以下对象的单独文件的类:Bird,Fish,Human,所有这些都引用单独文件中的超类Living。然后您可以组织它们: 文件:Living, 组:种类 ->文件:鸟类 ->文件:鱼类 ->文件:人类, 如果物种是文件夹,则在SPM中无法工作。 - Ethan Kay
1个回答

3

我相信您想要的是按照以下方式组织您的资源(基于后续评论):

Foo/Package.swift Foo/Sources/Foo/Living.swift Foo/Sources/Foo/Specifies/Bird.swift Foo/Sources/Foo/Specifies/Fish.swift Foo/Sources/Foo/Specifies/Human.swift

请注意,重要的是,如果您想使用子目录,则必须确保您的代码都嵌套在Sources的下一级。当一个包声明多个目标时,这是使用的约定,并且如果您想要使用源嵌套,则需要遵循此约定。请参见参考文献中的源布局部分。
如果您使用此布局,则使用最新的Swift软件包管理器(可通过swift.org获得)生成的Xcode项目将具有您想要的组结构。
我们知道这是令人困惑的事情,我们正在评估如何最好地改进事情。

如果我这样做,在Xcode中执行swift package generate-xcodeproj之后,我会得到你所说的结果,但它们没有分成组。这些文件都在同一级别,但现在被命名为Specifies/Bird.swift等,而不是在Specifies组中。 - Ethan Kay
这是SwiftPM中最近修复的问题--要获得此行为,您需要从http://swift.org获取最新的工具链。 - Daniel Dunbar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接