我正在尝试在 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,所以我不明白我得到的错误。谢谢你。
gitfront.io ,它将为您托管 SPM 包的私有 Git 存储库创建公共链接。仅当您的公司出于安全原因未禁止此类解决方案时才有效。有关更多信息,您还可以查看此 gitfront 设置教程。希望对您有帮助。
defaults write com.apple.dt.Xcode IDEPackageSupportUseBuiltinSCM YES
然后你可以将以下内容放入你的 git 配置中:
[url "[email protected]:"]
insteadOf = https://github.com/
这有效地迫使 git 对 ssh 而不是 https 进行查找替换。如果您愿意,您也可以将其指向不同的 git 主机。
swift package-registry publish
,但您也可以使用curl 命令。 AWS CodeArtifact 支持它https://aws.amazon.com/blogs/aws/new-add-your-swift-packages-to-aws-codeartifact/ 还提供私有访问选项