iOS集成MLKit(CocoaPods)后编译报错:arm64架构符号未定义
解决MLKit集成后编译报错(Undefined symbols for architecture arm64)
问题拆解
报错里的缺失符号分两类:
- 系统框架符号:
_CMSampleBufferGetImageBuffer、_CMSampleBufferIsValid属于CoreMedia框架,说明项目没链接这个系统库 - MLKit内部符号:
_OBJC_CLASS_$_MLKITx_FBMLImageInfo、_OBJC_CLASS_$_MLKTextRecognizer是MLKit组件的依赖,大概率是Pod装得不全或者配置有问题
分步解决
1. 补上缺失的系统框架
- 打开Xcode,找到你的项目目标,进入Build Phases → Link Binary With Libraries
- 点
+号,搜索CoreMedia.framework添加进去,顺便把CoreVideo.framework也加上(MLKit视觉功能基本都依赖它)
2. 重置CocoaPods依赖
- 终端切到项目根目录,依次跑这三条命令:
pod deintegrate pod clean pod install - 检查Podfile,别只写
pod 'GoogleMLKit',要按需引入子模块,比如用到文字识别就加:pod 'GoogleMLKit/TextRecognition' # 其他功能按需加,比如视觉核心:pod 'GoogleMLKit/Vision'
3. 核对架构配置
- 进入项目目标的Build Settings,找到Architectures
- 确保
arm64在Valid Architectures列表里 - 把Build Active Architecture Only的Debug模式设为
YES,Release模式设为NO
4. 清理重构
- 按Cmd+Shift+K清掉编译缓存,再重新编译项目
内容的提问来源于stack exchange,提问作者herz88888888
相关产品推荐
相关产品推荐

