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

升级Xcode13.4后Swift编译报No such module 'ObjectMapper'错误

Xcode13.4下Carthage依赖报"No such module 'ObjectMapper'"解决方法

按以下优先级逐一排查操作:

  • 前置环境校验
    先将本地Carthage升级到0.38.0及以上版本,执行命令brew upgrade carthage,低版本Carthage生成的xcframework无法被Xcode13正确识别。
  • 清理冗余缓存重新编译依赖
    旧版本预编译依赖的Swift版本、架构和Xcode13.4不匹配是这类问题的最高发原因:
    1. 删除项目根目录下整个Carthage文件夹
    2. 执行rm -rf ~/Library/Caches/org.carthage.CarthageKit清除Carthage全局缓存
    3. 进入项目根目录,执行carthage update --use-xcframeworks --platform iOS --no-use-binaries,附加--no-use-binaries参数强制在本地环境编译所有依赖,跳过官方提供的旧版本预编译包
  • 修正Build Phases配置
    xcframework格式依赖的拷贝脚本和旧版framework不同,原有配置不适配新格式:
    1. 打开Target的Build Phases标签,删除原有执行/usr/local/bin/carthage copy-frameworks的Run Script条目
    2. 新增Run Script条目,脚本内容填写/usr/local/bin/carthage copy-xcframeworks
    3. 在该脚本的Input Files列表中,添加路径$(SRCROOT)/Carthage/Build/ObjectMapper.xcframework
    4. 检查Link Binary With Libraries列表,删除所有旧的ObjectMapper.framework条目,重新添加Carthage/Build目录下新生成的ObjectMapper.xcframework
  • 修正Build Settings配置
    1. 在Build Settings中搜索Framework Search Paths,确认添加路径$(SRCROOT)/Carthage/Build,并将搜索规则设为recursive
    2. 搜索Always Embed Swift Standard Libraries,将值设置为Yes
    3. 执行Cmd+Shift+K清理项目构建产物,关闭Xcode后删除~/Library/Developer/Xcode/DerivedData下对应项目的缓存文件夹,重启Xcode重新构建
  • 仓库地址兼容修正
    若以上操作后仍报错,检查Cartfile配置:ObjectMapper原仓库已从Hearst-DD组织迁移,将Cartfile中对应配置修改为github "tristanhimmelman/ObjectMapper" ~> 4.2后重新执行依赖更新流程即可。

注意:不要混用framework和xcframework两种格式的依赖,若项目中残留旧版Carthage生成的.framework格式依赖,会导致Xcode的模块索引逻辑混乱,触发找不到模块的报错。

内容的提问来源于stack exchange,提问作者Zek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 02:15:38