iOS应用调试崩溃:VCWeakObjectHolder类重复实现错误求助
嘿,我之前也踩过这个坑!这个objc[56232]: Class VCWeakObjectHolder is implemented in both...的错误,本质是Xcode模拟器的两个系统私有框架都包含了同一个类,导致符号冲突直接搞崩调试会话。给你几个亲测有效的解决办法:
清理Xcode缓存与构建产物
先彻底关闭Xcode和所有模拟器窗口,然后打开终端执行以下命令清理缓存:rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf ~/Library/Caches/com.apple.dt.Xcode重启Xcode后,用快捷键
Cmd+Shift+K清理构建文件夹,再重新编译运行项目。重置iOS模拟器
打开出问题的模拟器,点击顶部菜单栏的Device->Erase All Content and Settings...,确认重置后重启模拟器,再尝试运行项目。这个操作能清除模拟器里的缓存和冲突的框架文件。更新Xcode到最新稳定版
这个类重复的问题很多时候是Xcode的版本bug,苹果会在后续更新中修复。你可以通过App Store或者苹果开发者网站下载最新的Xcode稳定版安装,同时确保Command Line Tools也是对应的最新版本(在Xcode的Settings->Locations里检查)。排查项目依赖与框架引用
检查项目的Build Phases->Link Binary With Libraries,看看有没有手动引入AVConference或ViceroyTrace相关的框架,尤其是第三方库可能会不小心重复引入系统私有框架。如果发现重复项,移除多余的引用即可。
如果以上方法都没解决,建议创建一个全新的空白iOS项目,在同一个模拟器上运行测试——要是新项目没问题,那大概率是你当前项目的配置存在冲突,可以尝试逐步迁移代码到新项目来定位具体问题。
内容的提问来源于stack exchange,提问作者Rasto

