在 Swift 包中包含 Playgrounds 的正确方法是什么?

B.T*_*.T. 6 xcode swift swift-playground swift-package-manager swift5

当我发布一个 Swift 包时,我喜欢包含一些 Playgrounds 来展示如何使用这个包的示例。在 Swift 5.4 之前,我能够以相对简单的方式执行此操作,但现在我的 Playgrounds 都没有看到我的包模块的内容。这对我来说没有任何意义。

我遵循了 Apple 自己的 WWDC 视频所说明的确切模式,即有一个Playgrounds/文件夹作为您的Sources/文件夹的对等点,然后只需导入包模块。

导入有效,但 Playground 总是报告它无法从模块内部找到任何类型。它们都被标记为public,正如我之前提到的,这些过去工作得很好。

在此处输入图片说明

这在Swift 5.45.5 中,在Xcode 12.513 Beta 中对我不起作用。

我认为一定有一些我不理解的设置或配置。有人可以在这里解释一下最佳做法吗?

作为参考,这里是我的一个简单的 Swift 包,它的 Playgrounds 目前不起作用:https : //github.com/dunesailer/Wordsmith

编辑:它变得更奇怪了。我有一个不同的Swift 包,其结构在我看来完全相同,但它的 Playgrounds 工作正常。什么?那个在这里:https : //github.com/dunesailer/Aesthete

Ben*_*rth 3

如果您移动/删除文件夹Chemical Names和内部文件Work Titles夹,所有游乐场都可以正常工作。看起来 Xcode 不支持文件夹(/这是一个错误)。Person NamesPlaygrounds/Playgrounds/

因此,要解决此问题,只需将所有 Playground 放在同一个文件夹中即可。

编辑:看起来这工作不一致。我已在反馈助手中提交了开发人员工具的错误报告/反馈


长期的解决方法是使用 DocC(在 Xcode 13 beta 中提供),它将支持存储库中更高级的教程/文章。