所以我正在同时开发两个包,其中包 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 指向包的本地签出而不是默认行为?
您可以使用 Xcode 处理 Swift 包 (
Package.swift
) 并编辑该包的依赖项,但它需要创建一个空的 xcworkspace
而不是使用 swift package edit
命令,这似乎并不适用在 Xcode 中得到支持。 本博文中有完整详细信息,但摘要是:
步骤 #4 很棘手,因为您需要确保将其拖到工作区的 root 中,而不是到您在 #2 中添加的包中。 Xcode 让这变得困难。