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

标签 swift xcode swift5 swift-playground swift-package-manager

当我发布一个 Swift 包时,我喜欢包含一些 Playgrounds 来展示如何使用这个包的示例。在 Swift 5.4 之前,我能够以相对简单的方式执行此操作,但现在我的 Playgrounds 都没有看到我的包模块的内容。这对我来说没有任何意义。
我遵循了 Apple 自己的 WWDC 视频所展示的确切模式,即具有 Playgrounds/文件夹作为您的对等方 Sources/文件夹,然后只需导入包模块。
导入有效,但 Playground 总是报告它无法从模块内部找到任何类型。它们都标有 public ,正如我之前提到的,这些过去工作得很好。
enter image description here
这在 中对我不起作用 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 TitlesPerson NamesPlaygrounds/ ,所有游乐场都运行良好。看起来 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/

相关文章:

ios - swift 继承协议(protocol)方法重写

swift - 两个 A 和 B 位置之间的路线

json - 当我不知道字典的键时,如何从 JSON 解码字典?

swiftui - 如何在 SwiftUI 中的形状中有文字?

ios - UIKit UITableViewCell 实现

ios - 如何通过Airdrop发送和接收自定义数据

ios - 在没有 NavigationController 的情况下展开到特定的 ViewController

xcode - 过剩和界面生成器

swift - 将旋转应用于弹出窗口

arrays - 为什么 (Array<Character> = []) 是 Array<Bool> == true