【问题标题】:How can I force Xcode to respect Git insteadOf for dependencies?如何强制 Xcode 尊重 Git 而不是依赖项?
【发布时间】:2022-06-23 19:30:23
【问题描述】:

问题

我对 Swift 比较陌生,正在尝试编写一个依赖于 PromiseKit 和 Starscream 的库。这是我第一次尝试使用 SwiftPM 而不是第三方 PM。

如果我使用这种安装模式...

dependencies: [
        // Dependencies declare other packages that this package depends on.
        // .package(url: /* package url */, from: "1.0.0"),
        .package(url: "https://github.com/daltoniam/Starscream.git", from : "4.0.0"),
        .package(url: "https://github.com/mxcl/PromiseKit", from: "6.8.0")
]

...我被扔了The operation couldn’t be completed. (SwiftPM.SPMRepositoryError error 5.)

如果我将其切换到 ssh url 模式,我可以获得顶级包。但是,PromiseKit 的子模块失败了,因为它们包含在 PromiseKit 中,https://..

dependencies: [
        // Dependencies declare other packages that this package depends on.
        // .package(url: /* package url */, from: "1.0.0"),
        .package(url: "git@github.com:daltoniam/Starscream.git", from : "4.0.0"),
        .package(url: "git@github.com:mxcl/PromiseKit", from: "6.8.0")
]

环境

  • 我的 XCode GitHub 帐户设置为使用 ssh 进行克隆。

  • 我的本​​地和全局.gitconfigs 具有以下 insteadOf 表达式:

[url "git@github.com:"]
    insteadOf = https://github.com/

问题

似乎 Xcode 只是忽略了这一点。我能做些什么?到目前为止,使用访问令牌也让我失败了。

【问题讨论】:

  • 我不熟悉 insteadOf git 配置,但是您尝试使用 ssh 而不是普通的 https 访问它是否有特定原因?
  • @Alexander 嗨,再次哈哈! Xcode 似乎在摸索我的 GitHub 访问令牌。我不能让它工作,甚至不能产生一个不稳定的错误。至少有了这个,我可以知道它做错了什么。注意:我可以swift build,一切都很好。但是,我在 xcode 中没有得到任何漂亮的 linting、突出显示或建议。
  • 我不太明白。这些是可公开访问的软件包; GitHub 访问令牌与此有什么关系?
  • @Alexander 我在同一条船上。我真的不明白为什么 xcode 在获取包时尝试进行身份验证,但似乎是。
  • @Alexander 我也试过删除insteadOf。但是,这也无济于事。

标签: swift xcode


【解决方案1】:

似乎 xcode 有自己的(嵌入的?) git,它不关心本地/全局配置。你可以告诉 XCode 使用系统 git 代替:

defaults write com.apple.dt.Xcode IDEPackageSupportUseBuiltinSCM YES

然后重新启动 xcode 以选择设置。 注意:我认为您的 git config 应该全局设置(而不是每个项目)以解决依赖关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-24
    • 2021-12-29
    • 2012-11-13
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    相关资源
    最近更新 更多