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

安装PusherSwift后Xcode 11启动崩溃:找不到_OBJC_CLASS_$_Reachability符号

解决PusherSwift安装后因Reachability符号缺失导致的崩溃问题

你遇到的是典型的第三方库依赖冲突问题——多个组件引入了不同版本/实现的Reachability库,导致ChatSDK在启动时找不到它预期的_OBJC_CLASS_$_Reachability符号。下面是一步步的排查和解决方法:

1. 彻底清理缓存并重新安装Pods

先排除缓存导致的依赖解析混乱:

  • 关闭Xcode,删除项目根目录下的Podfile.lock和Pods文件夹
  • 清理Xcode的Derived Data:通过Xcode > Preferences > Locations找到Derived Data路径,手动删除整个文件夹
  • 执行命令重新安装依赖:
    pod install --repo-update
    

2. 明确锁定Reachability版本,避免依赖冲突

你的项目里同时存在Tony Million的OC版Reachability(ChatSDK需要的)和PusherSwift依赖的Swift版ReachabilitySwift,这两个库的符号容易引发解析混淆。在Podfile里明确指定ChatSDK需要的Reachability版本,强制CocoaPods正确处理:

# 明确指定Tony Million的OC版Reachability(ChatSDK依赖的标准版本)
pod 'Reachability', '~> 3.2'
# 添加你的PusherSwift依赖,版本根据实际使用调整
pod 'PusherSwift', '~> 10.0'
# 其他项目依赖...

执行pod update让依赖重新对齐。

3. 检查项目的Build Settings配置

  • 打开项目的Build Settings,搜索Framework Search Paths:确保没有重复或错误的Reachability框架路径,只保留Pods目录下的正确路径(比如$(PROJECT_DIR)/Pods/Reachability)
  • 搜索Other Linker Flags:如果存在-ObjC或-all_load,尝试暂时移除它们——这些标记会强制链接所有符号,容易触发不同库之间的符号冲突。如果移除后某些功能异常,再针对性添加到特定Target的Linker Flags里。

4. 排查残留的Reachability引用

  • 用Xcode的「Find in Project」功能搜索Reachability,检查是否还有之前手动导入的Reachability文件残留(比如某个角落的引用没删除干净)
  • 进入「Frameworks, Libraries, and Embedded Content」界面,确保只保留一个Reachability框架(即Tony Million的OC版本),移除其他重复或无关的Reachability相关框架。

5. 验证ChatSDK的依赖配置

如果ChatSDK是通过Pod引入的,查看它的podspec文件(可以在Pods目录下找到),确认它声明的Reachability依赖版本,然后在你的Podfile里严格匹配这个版本,避免CocoaPods自动替换成不兼容的版本。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 07:37:37