在 Xcode 项目中添加分叉的 Swift 包

ajp*_*res 4 xcode github swift swift-package-manager swift-package

我最近从 GitHub 分叉了一个 Swift Package 库,以实现我一直缺少的功能。但是,当我尝试在 Xcode 项目中添加我的包版本(通过添加我的 fork 的 url)时,Xcode 找不到任何结果。

Xcode 显示它为我的 fork 找到了 0 个结果

这是 Swift Package Manager 的有意限制还是我遗漏了什么?

ajp*_*res 10

我最终通过手动编辑 project.pbxproj 和 Packages.resolved 文件来解决此限制,以便它们指向存储库分支中的特定提交。

\n

为此,请关闭 Xcode,然后使用纯文本编辑器打开这两个文件。

\n

在project.pbxproj 文件中,更改存储库的url 以及正确指定版本规则所需的参数。就我而言,我编写了所需提交的哈希值:

\n
/* Begin XCRemoteSwiftPackageReference section */\n    7902F77227C64GF9001583F1 /* XCRemoteSwiftPackageReference "Cuckoo" */ = {\n        isa = XCRemoteSwiftPackageReference;\n        repositoryURL = "https://github.com/ajpallares/Cuckoo";\n        requirement = {\n            kind = revision;\n            revision = a9d239ff1bb93fe0204f8285d513f3139b51fbbb;\n        };\n    };\n
Run Code Online (Sandbox Code Playgroud)\n

对 Packages.resolved 文件执行相同操作:

\n
{\n  "package": "Cuckoo",\n  "repositoryURL": "https://github.com/ajpallares/Cuckoo",\n  "state": {\n    "branch": null,\n    "revision": "a9d239ff1bb93fe0204f8285d513f3139b51fbbb",\n    "version": "null"\n}\n
Run Code Online (Sandbox Code Playgroud)\n

显然,这不是理想的解决方案,但至少它可以工作 \xc2\xaf\\ (\xe3\x83\x84) /\xc2\xaf

\n

事实上,这似乎是 Swift Package Manager 的有意限制。看:

\n\n