当我发布一个 Swift 包时,我喜欢包含一些 Playgrounds 来展示如何使用这个包的示例。在 Swift 5.4 之前,我能够以相对简单的方式执行此操作,但现在我的 Playgrounds 都没有看到我的包模块的内容。这对我来说没有任何意义。
我遵循了 Apple 自己的 WWDC 视频所展示的确切模式,即具有 Playgrounds/
文件夹作为您的对等方 Sources/
文件夹,然后只需导入包模块。
导入有效,但 Playground 总是报告它无法从模块内部找到任何类型。它们都标有 public
,正如我之前提到的,这些过去工作得很好。
这在 中对我不起作用 swift 5.4 或 5.5 , 在 Xcode 12.5 或 13 测试版 .
我认为一定有一些我不理解的设置或配置。有人可以在这里解释一下最佳做法吗?
作为引用,这是我的一个简单的 Swift 包,它的 Playgrounds 目前不起作用:
https://github.com/dunesailer/Wordsmith
编辑:它变得更奇怪了。我有一个不同的 Swift 包,其结构在我看来完全相同,但它的 Playgrounds 工作正常。什么?那一个在这里:
https://github.com/dunesailer/Aesthete
最佳答案
如果您移动/删除文件夹 Chemical Names
, Work Titles
和 Person Names
内Playgrounds/
,所有游乐场都运行良好。看起来 Xcode 不支持 Playgrounds/
中的文件夹(/这是一个错误)。
因此,要解决此问题,只需将所有 Playground 放在同一个文件夹中。
编辑:看起来这个作品不一致 .我已经提交了 bug report/ Feedback for Developer Tools in Feedback Assistant .
一个长期的解决方法是使用 DocC(在 Xcode 13 beta 中提供),它将支持 repo 中更高级的教程/文章。
关于swift - 在 Swift 包中包含 Playgrounds 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67954215/