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

Xcode 15升级后iOS应用启动崩溃:_OBJC_CLASS_$_RLMApp符号缺失求助

解决方案

核心问题定位

崩溃日志显示RealmSwift.framework依赖的_OBJC_CLASS_$_RLMApp符号无法在Realm.framework中找到,本质原因是项目中存在两套不一致的Realm依赖:你自行用Carthage构建的库内置了一套Realm,应用端又单独引入了GitHub预编译的另一套Realm,两者的版本、编译环境(Xcode版本)不匹配,导致符号兼容性问题。

具体修复步骤

1. 统一Realm依赖方式,消除版本/构建差异

  • 方案一:应用端改用Carthage构建Realm,与自定义库保持一致
    1. 在应用项目的Cartfile中添加对应版本的Realm依赖:
      github "realm/realm-swift" ~> 10.45.3
      
    2. 执行Carthage命令构建统一版本的Realm:
      carthage update Realm --use-xcframeworks --platform ios
      
  • 方案二:自定义库改用GitHub预编译的Realm xcframework,与应用端依赖对齐
    删除自定义库中Carthage管理的Realm,替换为和应用端相同的预编译xcframework文件。

2. 清理项目缓存与旧依赖

  • 删除项目Derived Data:Xcode菜单 → File → Project Settings → 点击Derived Data路径旁的箭头,删除整个文件夹。
  • 清理构建缓存:Xcode菜单 → Product → Clean Build Folder(快捷键Cmd+Shift+K)。
  • 删除应用端和自定义库中所有旧的Realm/RealmSwift框架文件,重新添加统一后的xcframework。

3. 检查构建配置,避免重复嵌入

  • 在应用项目的Build Phases中:
    • 确保Realm.xcframework和RealmSwift.xcframework仅在Embed Frameworks阶段出现一次,无重复条目。
    • 自定义库框架无需嵌入Realm(由应用端统一嵌入,避免重复加载导致冲突)。
  • 检查Build Settings中的Framework Search Paths,移除旧的Realm路径,只保留统一后的框架路径。

4. 验证版本与编译环境一致性

  • 确认自定义库和应用端使用的Realm版本完全相同,可通过Cartfile.resolved文件核对版本号。
  • 确保自定义库构建时使用的Xcode版本与应用端当前的Xcode 15.1/15.2一致,避免因Xcode版本差异导致ABI不兼容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 19:03:17