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

Xcode13编译旧iOS项目出现CMFormatDescription.h未知类型AudioFormatListItem错误

问题根因

该编译错误是老项目的配置与Xcode 13的编译规则不匹配,导致CoreMedia框架中定义的AudioFormatListItem类型未提前暴露,AVFoundation框架内部头文件引用时找不到对应类型。

解决方案
  • 调整头文件导入顺序
    在导入#import <AVFoundation/AVFoundation.h>的文件顶部,优先导入CoreMedia头文件:
    #import <CoreMedia/CoreMedia.h>
    如果是在.pch预编译头中全局导入了AVFoundation,同样要保证CoreMedia的导入顺序早于AVFoundation。
  • 升级最低部署版本
    AudioFormatListItem是iOS 8及以上版本才公开的系统类型,老项目如果设置了低于iOS 8的Deployment Target,将其调整到iOS 9.0及以上版本即可适配Xcode 13的编译要求。
  • 排查宏冲突
    检查项目自定义预编译宏、第三方引入的宏是否存在和CoreMedia关键字冲突的定义,尤其是控制系统类型暴露的CM_NO_TYPE_QUALIFIERS这类宏,存在冲突则删除或重命名冲突宏即可。
  • 清理构建缓存
    按下快捷键Shift+Command+K执行清理构建文件夹操作,也可以手动删除~/Library/Developer/Xcode/DerivedData路径下对应项目的缓存目录,重新编译解决旧缓存导致的头文件索引异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:39:03