使用SPM

时间:2019-08-09 22:17:06

标签: swift package-managers xcode11

是否可以在xcode 11中将本地依赖项与SPM集成在一起? 文件> Swift软件包>添加软件包依赖项... 它似乎只是在填充,让我选择托管在bitbucket上的git repos

我只是不确定我是否以正确的方式解决此问题,也许我应该改用Package.swift文件?我有很多Cocoapods的经验,但是我想分支并尝试其他工具,尤其是如果xcode将支持它们,因为它们将接缝SPM​​(我将使用xcode11 beta 5)

4 个答案:

答案 0 :(得分:3)

这就是我的方法:

  • 将包文件夹(在我的示例中为“ DataStructures”)拖放到查找器中,直接放入目标的 Frameworks 组中。您将看到放置的项目带有棕色的文件夹颜色(您可以使用箭头“进入它”)。
  • 转到项目目标页面,在“框架和库”中单击“ +”按钮。您的程序包应作为库显示在“工作区”区域。

enter image description here

答案 1 :(得分:3)

Xcode 12

如果项目中已经有软件包的远程版本,并且想在本地使用。还有一些额外的步骤...

1。确保本地软件包的版本高于远程版本

如果您不这样做,它将继续获取远程软件包

  1. 在“项目浏览器”中选择您的项目
  2. 在主窗口中,选择Swift Packages
  3. 选择要用本地替换的软件包并将其删除
  4. 转到文件> Swift软件包>添加软件包依赖性...
  5. 将您的本地软件包文件夹拖到软件包搜索栏中,并添加前缀file://
  6. 单击下一步

确认最低版本高于远程版本。

答案 2 :(得分:0)

本地 Swift 包管理器 (SPM)

[Dependency manager]

关键点是:file:// + git 可以在URL 字段中使用

file://<path>
//e.g.
file:///Users/alex/Desktop/MyProject

注意事项:

  • 它适用于 git 存储库,这就是为什么请确保您事先提交了更改
  • 当您添加 SPM 依赖项 File -> Swift Packages -> Add Package Dependency 时,它会添加到 project -> Swift Packages 中,而 implicit dependency[About] 会添加到 Frameworks, Libraries, and Embedded Content
  • 当您向框架提交新更改时,不要忘记 File -> Swift Packages -> Update to Latest Package Versions

产品文件夹

<path_derived_data>/<randomizer>/Build/Products/Debug
//e.g.
/Users/alex/Library/Developer/Xcode/DerivedData/SPMExperiments-bmmqumztjedpekaajffnaegxzwzg/Build/Products/Debug

[Local CocoaPods] [Local Carthage]

答案 3 :(得分:-1)

是的,Xcode使得这项基本任务变得不必要了。

但是,技巧很简单:在选择“添加软件包依赖项...”时弹出的工作表中的URL字段中,您可以输入file:// URL。例如将包裹的文件夹拖到该字段中,这会将路径放置在其中-例如'/ Users / me / Documents / myShinyPackage /',然后将'file://'粘贴到它的前面,这样您就可以继续了。