如何解决Xcode 16中框架内Previews崩溃问题?
解决XCPreviewAgent因fatalError崩溃导致框架无法预览的问题
最近在自己开发的框架里尝试运行任何预览都失败,收到错误提示:
XCPreviewAgent crashed due to fatalError...
折腾了不少时间才搞定,下面分享我的排查过程和解决方案:
排查步骤
- 首先排查预览代码本身,确认没有语法错误和逻辑问题,排除预览代码直接导致崩溃的可能
- 尝试常规的清理缓存(
Cmd+Shift+K)、重启Xcode,问题没有解决 - 对比正常运行预览的项目,检查框架的编译设置,发现框架的
DEAD_CODE_STRIPPING设为YES,但部分核心类的初始化逻辑被编译器误判为死代码 - 查看崩溃日志细节,发现触发fatalError的是框架内部一个带
@_transparent修饰的方法,这个方法在预览进程中被代码优化移除,调用时直接触发崩溃
解决方案
- 调整框架编译设置:要么把
DEAD_CODE_STRIPPING改为NO,要么给被误判的核心类/方法单独添加-fno-dead-strip编译标记 - 移除代码中不必要的
@_transparent修饰符,尤其是框架初始化、预览依赖的关键方法 - 执行深度清理(
Cmd+Shift+Option+K)后重新编译项目,重启Xcode再尝试运行预览
内容的提问来源于stack exchange,提问作者coco
相关产品推荐
相关产品推荐

