如何使用 Swift Package Manager 和 XCode 进行树顶开发?

问题描述 投票:0回答:1

所以我正在同时开发两个包,其中包 A 依赖于包 B。

Package A -> Package B

每个包都在一个单独的 git 存储库中,我希望避免每次进行更改时都必须将更改从包 B 推送到远程,以便能够将其与包 A 一起使用。

使用文档here,我已将包 B 置于编辑模式,如下所示:

$ cd /path/to/package_a/checkout/location
$ swift package edit PackageB --path /path/to/package_b/checkout/location

根据我的理解,这应该基本上告诉SPM在指定的

--path
引用包裹的本地结帐,而不是管理自己的结帐。

但问题是,如果我在 XCode 中打开包 A:

open /path/to/package_a/checkout/location/Package.swift

我转到包 B 上的“显示源”,它向我显示派生数据文件夹中的结账。

那么XCode似乎没有遵守SPM提供的编辑模式配置? 或者我如何实现让 XCode 指向包的本地签出而不是默认行为?

swift xcode swift-package-manager swift-package
1个回答
0
投票

您可以使用 Xcode 处理 Swift 包 (

Package.swift
) 并编辑该包的依赖项,但它需要创建一个空的
xcworkspace
而不是使用
swift package edit
命令,这似乎并不适用在 Xcode 中得到支持。 本博文中有完整详细信息,但摘要是:

  1. 创建一个空工作区
  2. 起草您想要使用的 Swift 包的包含文件夹
  3. 等待包解决
  4. 拖动要编辑的依赖项的包含文件夹。该文件夹的名称需要与第 3 步后出现的依赖项名称相匹配。并确保它是您签出依赖项或可编辑的文件夹。
  5. 等待包解决
  6. 一起编辑当前包和依赖项

步骤 #4 很棘手,因为您需要确保将其拖到工作区的 root 中,而不是到您在 #2 中添加的包中。 Xcode 让这变得困难。

© www.soinside.com 2019 - 2024. All rights reserved.