如何在 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 包管理器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Playground 中导入 Swift 包?

如何在 Swift Playground 中使用更新功能

如何使用 Swift 3 Playground 读取 Resources 目录中的文本文件?

如何检查 Playground 的 swift 版本?

如何在 Swift Playground 中完成歌曲时调用函数

Swift 3 Playground 以本地格式记录日期。如何?