导入RealmSwift时提示“Could not build Objective-C module 'RealmSwift'”如何解决?
解决RealmSwift导入编译错误方案
错误现象
导入RealmSwift时提示:Could not build Objective-C module 'RealmSwift',同时伴随C++编译错误:
using enum realm::sync::ProtocolError; switch (static_cast<realm::sync::ProtocolError> Expected unqualified-id
解决步骤
版本兼容性检查
RealmSwift 10.x及后续版本要求Xcode 12.4或更高版本。如果Xcode版本过低,要么升级Xcode到对应版本,要么在Podfile中指定适配旧Xcode的Realm版本,比如:pod 'RealmSwift', '~> 9.0'执行
pod install更新依赖。清理项目缓存
- 按
Cmd+Shift+K清理项目 - 按
Cmd+Option+Shift+K清理构建文件夹 - 删除DerivedData:打开Xcode偏好设置→Locations,点击DerivedData路径旁的箭头,删除当前项目的缓存文件夹
- 重启Xcode
- 按
重新安装Pods依赖
终端进入项目目录,依次执行:pod deintegrate pod clean pod install注意必须打开项目的
.xcworkspace文件,而非.xcodeproj。调整C++语言标准
- 打开项目target的Build Settings
- 搜索
C++ Language Standard,设置为C++17或GNU++17 - 同时搜索
Objective-C++ Language Standard,同步设置为对应版本
排查依赖冲突
如果项目中有其他C++相关第三方库,可能与Realm的编译设置冲突。暂时移除非必要库,测试编译是否正常,逐步定位冲突来源。
内容的提问来源于stack exchange,提问作者Kuralay Biehler
相关产品推荐
相关产品推荐

