0

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

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

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

4

2 回答 2

1

尝试使用http而不是httpshttp 代替 https

编辑:

在您尝试使用 http 并且仍然遇到问题后,您可能需要创建个人访问令牌:

  1. 转到 GitHub 并登录。
  2. 在右上角,您将看到您的头像带有一个打开菜单的按钮。单击并选择设置。
  3. 从设置列表中选择开发人员设置。
  4. 从开发人员设置列表中选择个人访问令牌。
  5. 单击生成个人访问令牌链接。
  6. 在 Note 文本字段中输入 Xcode,让您知道令牌用于 Xcode。
  7. 选择访问令牌的范围。
  8. 单击生成令牌按钮。
  9. 复制令牌,以便您可以将其粘贴到 Xcode 中。

现在在 Xcode 中使用令牌:

  1. 选择 Xcode > 首选项。
  2. 单击首选项窗口顶部的帐户按钮。
  3. 单击添加按钮。
  4. 从帐户列表中选择 GitHub。
  5. 单击继续按钮。
  6. 在文本字段中输入您的 GitHub 用户名和个人访问令牌。
  7. 单击登录按钮。
于 2022-02-16T07:52:02.633 回答
0

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

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

在 project.pbxproj 文件中,更改 repo 的 url 和正确指定版本规则所需的参数。就我而言,我写了我需要的提交的哈希:

/* Begin XCRemoteSwiftPackageReference section */
    7902F77227C64GF9001583F1 /* XCRemoteSwiftPackageReference "Cuckoo" */ = {
        isa = XCRemoteSwiftPackageReference;
        repositoryURL = "https://github.com/ajpallares/Cuckoo";
        requirement = {
            kind = revision;
            revision = a9d239ff1bb93fe0204f8285d513f3139b51fbbb;
        };
    };

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

{
  "package": "Cuckoo",
  "repositoryURL": "https://github.com/ajpallares/Cuckoo",
  "state": {
    "branch": null,
    "revision": "a9d239ff1bb93fe0204f8285d513f3139b51fbbb",
    "version": "null"
}

显然,这不是理想的解决方案,但至少它可以工作¯\ (ツ)

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

于 2022-02-23T12:25:08.497 回答