如何在 GitLab 上使用私有存储库分发 Swift 包?

问题描述 投票:0回答:4

我正在尝试在 GitLab 上的私有存储库上分发 Swift 包。 在位于 git 存储库根目录的 Package.swift 文件中,我尝试使用 SSH 连接,但在输入 "[email protected]:myteam.my/path/- 时出现错误/raw/1.0.0/xcframework/1.0.0.zip" 作为二进制目标的 URL。 错误:二进制目标“MyTarget”的 URL 方案无效;有效的方案是:“https” 那么唯一有效的方案是“https”?我在使用“https”方案时遇到问题,我正在缓解以下错误:下载失败“https://gitlab.com/myteam/my/path/-/raw/1.0.0/xcframework/1.0”二进制目标“MyTarget”所需的“.0.zip”:/var/folders/t4/qd0rg_cj79xchv2_34xjfh_40000gn/T/CFNetworkDownload_C4T3iM.tmp 在文件系统中不存在。我猜测存储库是私有的,SPM 无法下载 Swift 包,除非它使用 SSH。 有人有任何提示吗?我见过有人在他们的 Package.swift 中使用以 git@ 开头的 URL,所以我不明白我得到的错误。谢谢你。

swift gitlab package swift-package-manager
4个回答

0
投票
我在公共存储库中收到了同样的错误。看来 Swift Packages 尚未得到 gitlab 的完全支持,但对社区贡献开放。

gitlab 文档


0
投票
确保您的 Xcode 没有使用其内置的 Git 发行版:

defaults write com.apple.dt.Xcode IDEPackageSupportUseBuiltinSCM YES
然后你可以将以下内容放入你的 git 配置中:

[url "[email protected]:"] insteadOf = https://github.com/
这有效地迫使 git 对 ssh 而不是 https 进行查找替换。如果您愿意,您也可以将其指向不同的 git 主机。


0
投票

swift package-registry publish

,但您也可以使用curl 命令。 AWS CodeArtifact 支持它 
https://aws.amazon.com/blogs/aws/new-add-your-swift-packages-to-aws-codeartifact/ 还提供私有访问选项

© www.soinside.com 2019 - 2024. All rights reserved.