You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift项目Package.resolved文件损坏且找不到的解决与预防方案

解决Package.resolved损坏却找不到文件的问题

报错说明

你遇到的报错本质是Package.resolved文件混入了HTML字符(<),导致JSON解析失败,但这个文件不在项目根目录,藏在缓存或Xcode的衍生数据里:

Package.resolved file is corrupted or malformed; fix or delete the file to continue: dataCorrupted(Swift.DecodingError.Context(codingPath: [], debugDescription: "The given data was not valid JSON.", underlyingError: Optional(Error Domain=NSCocoaErrorDomain Code=3840 "Unexpected character '<' around line 8, column 2." UserInfo={NSDebugDescription=Unexpected character '<' around line 8, column 2., NSJSONSerializationErrorIndex=184})))

排查修复步骤

1. 找DerivedData里的Package.resolved

Xcode的衍生数据目录存了编译缓存,里面大概率有这个损坏的文件:

  • 打开Xcode,点顶部菜单栏File > Project Settings(如果是Workspace就选Workspace Settings)
  • 点击Derived Data旁边的箭头,直接跳转到对应文件夹
  • 在这个文件夹里搜索Package.resolved,找到后删掉
  • 重启Xcode,重新拉取依赖

2. 清空SPM全局缓存

如果上面的方法没用,清理Swift Package Manager的全局缓存:

  • 打开Finder,前往路径~/Library/Caches/org.swift.swiftpm/
  • 删除resolved文件夹,或者直接清空整个缓存目录
  • 打开终端,进入项目根目录,执行:
swift package clean
swift package update

3. 检查Workspace的隐藏目录

如果是Workspace项目,Package.resolved可能在Workspace的隐藏目录里:

  • 打开项目所在文件夹,按Command + Shift + .显示隐藏文件
  • 进入[你的Workspace名].xcworkspace/xcshareddata/swiftpm/目录,看看有没有Package.resolved,有的话删掉

4. 强制重置SPM依赖

前面的方法都无效的话,直接重置项目的SPM配置:

  • 关掉Xcode
  • 终端进入项目根目录,执行:
rm -rf .swiftpm
swift package resolve
  • 重新打开项目,Xcode会自动重新解析所有依赖

5. 检查依赖源是否出问题

报错里的<字符大概率是依赖源返回了HTML(比如GitHub仓库访问出错返回404页面):

  • 打开项目里的Package.swift,检查依赖的URL是否正确
  • 用浏览器打开这些URL,确认能正常访问仓库
  • 如果是私有依赖,检查本地Git凭证(SSH密钥、Token)是否过期或无效

内容的提问来源于stack exchange,提问作者Yasir Arefin Tusher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 14:32:46