如何在 Playground 中使用 Swift 包管理器
Posted
技术标签:
【中文标题】如何在 Playground 中使用 Swift 包管理器【英文标题】:How to use Swift Package Manager in Playground 【发布时间】:2017-03-11 15:18:12 【问题描述】:是否可以在 Xcode Playground 中使用 Swift 包管理器?
【问题讨论】:
你能解释一下“在 Playground 中使用 Swift 包管理器”对你意味着什么吗? 我认为有一个很好的材料可以帮助你。 1) swift.org/package-manager/#conceptual-overview 2) honzadvorsky.com/articles/… 3) raywenderlich.com/148832/introduction-swift-package-manager 4) youtube.com/watch?v=OIWqkg9Ry1g 【参考方案1】:目前无法在 Playground 中使用 Swift 包管理器。原因是 Swift 包管理器主要在苹果平台之外使用。
Apple 在 Swift 包管理器的 GitHub 上提到了这一点:
请注意,目前包管理器不支持 ios、watchOS 或 tvOS 平台
Swift 包管理器对于为 Linux 和 Mac 等平台编写 Swift 尤其有用。用途可能包括创建基于 Swift 编写的服务器或编写无需用户界面即可运行的程序(想想家庭自动化和物联网)。这是在不使用 Pod 或其他第三方设置的情况下组织包的好方法。当您为生产(或调试)构建代码时,它将下载包并将其合并到项目中。
注意:这可能会在未来发生变化,但在 Swift 3 中是最新的
【讨论】:
您的答案已被弃用。现在呢? 这个答案现在已经过时了(正如它所指出的那样)。我现在投反对票,试图让最近的答案更明显,但如果它用最新信息更新,我会扭转这种情况。【参考方案2】:在 Xcode 12 中,您可以将 Swift 包与 Xcode Playgrounds 一起使用。
使用 Swift 包和 Playground 设置工作区的步骤:
打开 Xcode 创建新工作区 (File > New > Workspace...
)
通过File > Add Files to "Workspace Name"...
选择包目录添加所需的 Swift 包。
通过File > New > Playground...
创建一个新的游乐场。确保在创建 Playground 期间选择我们刚刚创建的 Workspace 作为“添加到”和“组”选项(在您选择 Playground 在磁盘上的位置的助手中)。
您现在可以将 Package 目标导入 Playground 并开始探索 Package 的功能。
您可以在此 WWDC20 会议中找到更多详细信息和示例项目:Explore Packages and Projects with Xcode Playgrounds
确保在检查器中为您现有的 Playground 选中新的“构建活动方案”复选框。
【讨论】:
但是还是要手动下载包,不能只从远程服务器导入包 我按照这些说明进行操作,但是当我添加导入语句时,使用从 Package.swift 复制和粘贴的模块名称,我得到“没有这样的模块”错误。这是使用 Xcode 版本 12.0.1 (12A7300)。 可能值得向 Apple 提交错误报告。您可以在 Xcode 的 Report navigator 中找到的构建日志中检查包是否实际构建成功。【参考方案3】:在 Xcode 12 中,playgrounds 可以与项目中的 swift 包无缝协作。
请按照以下步骤操作:
创建一个名为Playground
的项目:
文件→新建→项目...(⇧⌘N)→产品名称:游乐场
⚠️你可以随意命名,这里只是一个例子。
为项目添加一个swift包,如SnapKit
:
文件 → Swift 包 → 添加包依赖... → https://github.com/SnapKit/SnapKit.git
创建一个playground,并将其添加到第一步创建的项目中:
文件 → 新建 → Playground... (⌥⇧⌘N) → 添加到:Playground
在 Playground 中导入 swift 包(SnapKit):
import SnapKit
如果不出意外,您可以在 Playground 中使用SnapKit
。
【讨论】:
感谢您提供此信息。我想知道是否可以在不创建项目的情况下使用包管理器。以上是关于如何在 Playground 中使用 Swift 包管理器的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 3 Playground 读取 Resources 目录中的文本文件?