Xcode 13 Bridging Header无法识别Objective-C类问题求助
Xcode 13 桥接头文件无法识别Objective-C类解决步骤
- 第一步:确认文件目标成员身份
选中ProjectModel.h、ProjectModel.m以及桥接文件MyApp-Bridging-Header.h,在Xcode右侧文件检查器的「Target Membership」区域,勾选你当前编译的App主目标,确保文件会被加入编译流程。 - 第二步:验证桥接文件路径有效性
打开项目Build Settings,搜索Objective-C Bridging Header,点击配置的路径右侧的箭头,确认Xcode可以直接跳转到对应的桥接文件。注意路径必须是相对于项目根目录的相对路径,不要使用绝对路径。 - 第三步:排查头文件导入正确性
- 确认
ProjectModel.h文件名的大小写和桥接文件中导入的写法完全一致,macOS文件系统默认大小写不敏感,但Xcode索引和编译阶段可能会因大小写不匹配报错 - 单独选中
ProjectModel.h,按Command + B编译单个文件,确认该头文件本身没有语法错误、不存在依赖的其他头文件缺失问题,头文件本身编译失败会导致桥接后无法被Swift识别 - 桥接文件中优先使用
#import "ProjectModel.h"写法,同时在Build Settings的Header Search Paths中添加$(SRCROOT)/MyApp/Models,并设置为递归检索
- 确认
- 第四步:清理Xcode缓存重建索引
Xcode 13的索引缓存经常出现异常,按以下顺序操作:- 按
Shift + Command + K清理现有构建产物 - 完全退出Xcode,打开访达进入
~/Library/Developer/Xcode/DerivedData目录,删除当前项目对应的缓存文件夹 - 重启Xcode,等待索引完成后重新编译
- 按
- 特殊场景排查
如果你是在App Extension、Widget等子目标中使用ProjectModel,需要在子目标的Build Settings中单独配置桥接文件路径,主目标的桥接配置不会自动同步到子目标。
内容的提问来源于stack exchange,提问作者Alexandre Odet
相关产品推荐
相关产品推荐

