繁体   English   中英

代理后面的 XCode Swift 包管理器错误

[英]XCode Swift package manager error behind proxy

我们使用嵌入在 XCode 中的 Swift 包管理器来处理我们项目中的依赖项。 在本地机器上使用它时一切正常。 但是,当我尝试在我们的 ci slaves 上构建项目时,我收到以下错误(从 XCode 和控制台运行时):

xcodebuild -resolvePackageDependencies

Resolve Package Graph

Fetching https://github.com/hmlongco/Resolver.git

xcodebuild: error: Could not resolve package dependencies:
  An unknown error occurred 

在本地和在 ci slave 上运行它的区别在于 ci 机器是在代理后面配置的。 我们已经将运行此命令时访问的所有 URL 列入白名单,但问题仍然存在。 我找不到有关此错误的任何详细日志。

通过检查我运行命令时发送的网络包,我们仍然可以看到某些应用程序正在尝试访问直接 URL 而不是通过代理,并且收到超时。 我们只在 github 上使用公共包,不需要任何身份验证。

另一方面,如果项目使用 Package.swift 以旧方式设置并且我们运行: swift package resolve依赖项已成功解析且没有错误。

我已经完成了以下操作,但没有任何有用的解决方案:

企业网络配置
XCode 代理设置
现实生活项目中的 SPM
开发者论坛上同样的问题
解决依赖项的 SSH 错误- 没有 ssh 依赖项

此外,也没有关于通过 XCode 解析包与使用“swift 包”有何不同的任何文档。 目前我不确定是否可以配置一些东西,以便 XCode 使用 SPM 的代理设置,或者不支持通过代理的 Xcode SPM。 有任何想法吗? 任何帮助表示赞赏!

从我刚刚发现的内容来看,至少对于 Xcode 12.4,xcodebuild 有-scmProvider选项:

-scmProvider  which implementation to use for Git operations (system/xcode)

如果我猜对了, -scmProvider system将强制 xcodebuild 使用“系统”git。 反过来,就我而言,这使它尊重我拥有的 git 配置设置,尤其是代理。

因此,回答最初的问题,可能值得一试

xcodebuild -resolvePackageDependencies -scmProvider system

(只要正确设置了 Git 配置)

事实证明,如果我们只配置代理以与 git 一起使用,则有一个简单的解决方法:

让 Git 与代理服务器一起工作 - 因“请求超时”而失败

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM