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

Package.resolved file is corrupted or malformed

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

Package.resolved file is corrupted or malformed; fix or delete the file to continue

我试过删除 Package.resolved 文件并让它重新生成(但没有),但我收到相同的错误消息。关于如何解决这个问题有什么想法吗?

我在 forums.swift.org 上找到了这个答案,它对我有用:

  1. 杀死xcode
  2. 然后完全删除派生数据目录(清空垃圾箱以确保万无一失)。
  3. 重启Xcode
  4. 重置Swift包缓存

这个问题也可能是由于项目是从 .xcworkspace 而不是 .xcodeproj 文件打开的。 我们从 CocoaPods 过渡到 SPM,旧的 .xcworkspace 搞砸了。

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

我尝试了上面 Maxwell 建议的解决方案,但没有解决我的问题。

错误出现在 Xcode 12 但升级到 Xcode 13 也没有解决它。

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

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

  2. Package.resolved 文件位于 [appName].xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

    的 .xcodeproj 目录中
  3. 右键单击 .xcodeproj 和 project.xcworkspace 以显示包内容。

  4. 将Package.resolved文件移动到垃圾箱,然后清空垃圾箱。

  5. 重新打开 Xcode 并再次打开您的项目。这给了我另一个错误: 无法访问位于“/”的包(无法读取“4.5.0”:

  6. 在 Xcode 中,文件/包/重置包缓存。 Swift 包管理器开始处理此问题。

  7. 重建项目。错误消失了,我的项目重建成功。

祝你好运!

我加入上面的内容,想补充(或者说简化)这个程序一点,你可以不关闭xcode并做同样的事情,而Package.resolved文件会自动添加到 swiftpm 文件夹,然后你只需更新 pods.

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

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

Package.resolved file is corrupted or malformed; fix or delete the file to continue: unsupported schema version 2

这意味着 CI 的 Xcode 版本不支持该架构格式。升级它以匹配我们的开发环境解决了这个问题。