如何在Playground中导入Swift Package?

22

我能否将Swift Package导入到位于工作区的Playground中?我已经阅读了答案,但我认为它已经过时了,因为现在我们可以在iOS项目中使用Swift Packages。

5个回答

27

Xcode 12 支持在 Playground 中使用 Swift Packages。

  • 打开 Xcode
  • 创建一个新的 Workspace (文件 > 新建 > Workspace...)
  • 通过 文件 > 添加文件至“Workspace 名称”...,选择所需的 Swift Package 目录进行添加。
  • 通过 文件 > 新建 > Playground... 创建一个新的 Playground。在 Playground 创建过程中(在助手中选择 Playground 的磁盘位置时),请确保选择我们刚刚创建的 Workspace 作为“添加到”和“组”的选项。
  • 现在,您可以将 Package target 导入 Playground 并开始探索 Package 的功能。

您可以在这个 WWDC20 session 中找到更多细节和样本项目:Explore Packages and Projects with Xcode Playgrounds

请确保勾选现有 Playground 工程中检查器中的“构建启动方案”复选框。


2
一步一步地,如何将“Package target导入您的Playground”? - Rillieux
在你的 Playground 代码顶部添加 import MyPackage (将 MyPackage 替换为你的包名)。 - Guillaume Algis
1
从XCode14.2开始,您至少需要在工作区内创建一个项目,并将playground添加到该项目中,才能添加软件包。有关详细信息,请参见alex1704的答案。实际上,工作区并不重要,项目才是最重要的。 - Andy Dent
这在Xcode 15中不起作用。 - undefined

15

请查看Arena,它允许您创建带有SPM依赖项嵌入的游乐场,以供使用。

所需的全部就是这样。

brew install finestructure/tap/arena
arena alamofire/alamofire

更新: Swift Package Index 已经获得了Arena集成,你可以通过在包页面上点击"在Playground中试用"按钮来创建一个Playground。


6

目前,Playground还不支持Swift Package Manager。 当我们尝试从Xcode中添加Swift PM时,会出现以下情况

File > Swift Packages > Add Package Dependency

选项已禁用。

enter image description here

一种选择是使用nef-它是一个开源项目,可以让你在Playgrounds中导入第三方库。目前,它与Cocoapods兼容,但nef正在努力将其开放给其他依赖管理器,如Carthage和SPM。
关于SPM并不是一件容易的任务,而且它会有一些不同,因为苹果已经准备好了Xcode11,但我有好感,我认为它可能会在9月至10月之间准备就绪。

2

我无法让@wolfrevo的答案起作用。不过,我有一个受他启发的解决方案:

  1. 打开Xcode
  2. 创建一个新项目文件 > 新建 > 项目
  3. 选择 多平台 > 应用程序 > 下一步
  4. 项目名称:任意 > 下一步
  5. 创建
  6. 现在添加依赖项(文件 > Swift Packages > 添加包依赖项
  7. 粘贴软件包git url:https://github.com/maxhumber/Carlo.git > 下一步
  8. 选择规则,或跳过 > 下一步
  9. 完成
  10. 通过快捷键Cmd+N在此项目中创建一个新的Playground文件
  11. 搜索Playground > 下一步
  12. 创建

我添加的包出现了“符号未找到”的错误,直到我重新启动了Xcode(12.2)...哈哈 - RyanM

2

XCode 14.2

  1. 创建新项目(例如iOS应用程序)
  2. 文件 > 新建 > Playground
  3. 文件 > 添加包(选择您的包)
  4. 重新加载XCode
  5. 在Playground中import Package

如果XCode仍然无法看到包,则:
文件 > 包 > 解决包版本


我在XCode14.2的iOS或macOS(空白)playgrounds中无法启用添加包功能。是否还有其他步骤或更具体的操作? - Andy Dent
@AndyDent 你需要创建新项目而不是新游乐场(请参阅第1点)。 - alex1704
啊,问题出在我没有将新的Playground添加到项目中,在“文件-新建Playground”中的新Playground第二个屏幕中。(是的,我知道这可能很明显,但我几乎确定这就是我的错误所在)。谢谢! - Andy Dent
与wolfrevo相同的步骤,只是将工作区替换为项目? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接