我提供了配置了LFS的私有库git存储库。我已通过添加 Package.swift 文件将该库转换为 SwiftSPM 兼容。当我通过拖放将其添加到我的应用程序项目时,我的包在本地工作正常。但如果我尝试从 Xcode 添加为 swift 包管理器,我会收到以下错误
无法查看修订版“cdd1352f7a46a3eb6ea2f087da5fd4e5fcc5254c”:
传输“f2f56588141b3b3fa7bb8c136079b5b38cf8615441dde51d90aa4fffdc8db342”时出错:[0]远程丢失对象f2f56588141b3b3fa7bb8c136079b5b38cf8615441dde51d90a a4fffdc8db342
我浏览了几个链接
但对我来说没有任何作用:这是我的设置详细信息
Xcode 12.5 git-lfs/2.13.3(GitHub;darwin arm64;go 1.16.2) git 版本 2.30.1 (Apple Git-130)
任何帮助将不胜感激。谢谢!!
我为那些想要同时使用 LFS 和 SPM 的人找到了解决这个问题的方法,而不需要让他们的包使用者添加安装/链接 LFS 的步骤。注意:只有当 LFS 中的文件是可选的并且不需要作为包构建的一部分时,这才有效。就我而言,我们将其用于快照测试 PNG(仅需要运行测试,不需要构建/使用包)。
基本上,您可以将 LFS 设为可选,并且仅为包开发人员配置它,而不是包消费者。
步骤:
.gitattributes
文件中删除 lfs 配置行并签入此删除。确保此更改使其进入 main/master,因为 SPM 检查我们的第一个更改,并且 LFS 配置将失败。.git/info/attributes
文件中——该文件仅对您而言是本地的,不会签入。这允许您作为软件包开发人员继续使用 LFS。我制作了一个 gitattributes_package_dev_template 文件,其中包含有关如何在本地为其他包开发人员设置 LFS 的说明,并检查了这些说明。swift package purge-cache
删除旧缓存git lfs install && git lfs pull --include="*" --exclude=""
添加到人们在进行本地包开发时运行的脚本中。这将安装 LFS 挂钩,并将指针转换为二进制文件。