Xcode 9.3删除实体或重置实体父对象时崩溃问题求助
我之前也碰到过完全一样的情况,在Xcode的Core Data模型编辑器里操作实体父对象或者删除实体时直接崩溃,看你的崩溃报告是IDE的CoreDataModeler组件触发了断言失败,给你几个亲测有效的解决思路:
清理Xcode缓存:这是修复IDE组件崩溃最常用的手段。打开终端执行以下命令:
rm -rf ~/Library/Caches/com.apple.dt.Xcode执行完后彻底重启Xcode,再尝试操作实体。
重新生成模型文件:有时候
.xcdatamodeld文件会存在隐性损坏,导致编辑器异常。先备份好当前的模型文件,然后新建一个空的Core Data模型,手动把原模型里的实体、属性、关系迁移到新模型中,替换原文件后再测试操作。检查实体继承链的配置:如果是重置父对象时崩溃,大概率是实体的继承关系存在异常。仔细检查父实体和子实体的属性、关系配置,有没有循环依赖、重复属性或者冲突的关系设置,比如父实体和子实体引用了同一个反向关系但配置不一致。
升级Xcode版本:你的崩溃报告里显示ProductBuildVersion是9E145,对应Xcode 9.3版本,这个版本确实存在不少Core Data模型编辑器的已知bug。如果项目允许的话,升级到更稳定的Xcode版本(比如Xcode 10及以上),能直接解决很多旧版本的兼容性问题。
删除Derived Data:打开Xcode偏好设置(快捷键
Cmd+,),切换到Locations标签,点击Derived Data右侧的箭头打开文件夹,删除整个Derived Data目录,然后重启Xcode重新构建项目。
你的崩溃报告详情:
崩溃线程:0 调度队列:com.apple.main-thread
异常类型:EXC_CRASH (SIGABRT)
异常代码:0x0000000000000000, 0x0000000000000000
异常备注:EXC_CORPSE_NOTIFY
应用特定信息:ProductBuildVersion: 9E145
断言失败于 /Library/Caches/com.apple.xbs/Sources/IDEPlugins/IDEPlugins-14133/IDECoreDataModeler/ModelEditor/EditorShared/XDDiagram/XDDiagramStor...
内容的提问来源于stack exchange,提问作者Max Kraev

