Package.resolved 文件已损坏或格式错误

Max*_*ell 87 xcode swift-package-manager

我遇到构建错误,指出我的所有 SPM 包均丢失。我决定删除每个包并将其重新添加到项目中,但每次尝试添加包都会出现以下错误:

Package.resolved 文件已损坏或格式错误;修复或删除文件以继续

我尝试删除该Package.resolved文件并让它重新生成(但没有),但我收到了相同的错误消息。有想法该怎么解决这个吗?

在此输入图像描述

小智 216

我尝试了上面麦克斯韦建议的解决方案,但它没有解决我的问题。

\n

该错误在 Xcode 12 中出现,但升级到 Xcode 13 也没有修复它。

\n

相反,我决定相信 Xcode 的话并删除 Package.resolved 文件。但它在哪里呢?我这样做了:

\n
    \n
  1. 在 Finder 中,点击 Shift+Cmd+。显示隐藏的文件和文件夹。

    \n
  2. \n
  3. Package.resolved 文件位于 [appName].xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved 的 .xcodeproj 目录中

    \n
  4. \n
  5. 右键单击 .xcodeproj 和 project.xcworkspace 以显示包内容。

    \n
  6. \n
  7. 将 Package.resolved 文件移至垃圾箱,然后清空垃圾箱。

    \n
  8. \n
  9. 重新打开 Xcode 并再次打开您的项目。这给了我另一个错误:\n无法访问“/”处的包(Couldn\xe2\x80\x99t 读取“4.5.0”:

    \n
  10. \n
  11. 在 Xcode 中,文件/包/重置包缓存。\nSwift 包管理器开始处理此问题。

    \n
  12. \n
  13. 重建项目。错误已经消失,我的项目重建成功。

    \n
  14. \n
\n

  • 我在我的工作区中找到了它:project.xcworkspace/xcshareddata/swiftpm/Package.resolved (14认同)
  • 在工作区也找到了。我认为如果您使用的是 cocoapods,该文件将位于工作区而不是“xcodeproj”中 (7认同)
  • 非常欢迎您在个人资料中添加指向您网站的链接,但它绝对不属于个人答案(除非该链接实际上以某种方式对答案的实质内容做出了贡献,但显然它在这里没有这样做)。另请参阅[促销指南](/help/promotion) (5认同)
  • 我遇到的另一个问题是,如果 Xcode 打开,它会立即重新创建文件,但问题仍然存在。关闭 Xcode 然后删除修复了这个问题。 (3认同)

GoR*_*RoS 22

只是为了添加另一个有效的场景,我在 CI 上遇到了同样的错误,但有更多细节:

Package.resolved 文件已损坏或格式错误;修复或删除文件以继续:不支持的架构版本 2

这意味着 Xcode 版本的 CI 不支持该架构格式。

更新 Xcode 版本以匹配我们的开发环境解决了该问题。

  • 我的意思是升级XCode。只有最新版本知道如何处理新的模式版本(并且很可能旧版本向后兼容)。 (4认同)
  • @GoRoS 有效;谢谢你!我必须使用“macos-12”而不是“macos-latest”才能使“13.4.1”正常工作。 (3认同)
  • @Tarek 尝试将 Xcode 更新到 13.4.1 或更高版本,并使用该版本启动相同的 cmd。这应该支持该架构的第二个版本。 (2认同)

小智 10

合并更新后确实遇到了同样的问题。对我来说帮助删除Package.resolved文件。


Nic*_* S. 10

当在项目中同时使用CocoaPodsSwiftPackageManager时,会有两个 Package.resolved文件。一个位于YourProj.xcworkspace中,另一个位于YourProj.xcproj -> project.xcworkspace中。我不得不删除两者然后它又起作用了。