求助:Xcode 14调试Swift文件时po命令报错,ObjC文件正常
Xcode 14 混编项目Swift调试
po命令报错解决方案 问题描述
项目包含Swift和Objective-C文件,升级Xcode 14后,Swift文件断点调试时使用po/p/v命令均报错,Objective-C文件中使用这些调试命令完全正常。
报错信息
(lldb) po dependencies warning: Swift error in scratch context: error: failed to load module 'AppName' . Shared Swift state for AppName has developed fatal errors and is being discarded. REPL definitions and persistent names/types will be lost. error: expression failed to parse: unknown error
已尝试无效操作
- 清理DerivedData
- 重新安装Xcode
- 重新下载完整仓库代码
可行解决方法
调整调试信息格式
打开项目Target的Build Settings,找到Debug Information Format,将Debug模式下的设置改为DWARF with dSYM File。Xcode 14对混编项目的调试符号完整性要求更高,仅DWARF可能导致LLDB无法正确加载Swift模块。检查桥接文件与Swift库嵌入配置
- 确认
Objective-C Bridging Header路径配置正确,桥接文件无语法错误; - 将Build Settings中的
Always Embed Swift Standard Libraries设为Yes(Debug和Release模式都需设置)。
- 确认
关闭Debug模式编译优化
在Build Settings的Optimization Level中,把Debug模式的选项改为No Optimization [-O0],编译优化会导致调试时符号信息丢失,引发LLDB解析失败。重置LLDB配置
终端执行命令删除LLDB用户配置文件,重启Xcode后重试:rm -rf ~/.lldbinit统一模块名与Target名称
检查Build Settings中的Product Module Name,确保其与Target名称完全一致,避免LLDB加载模块时出现名称不匹配的问题。
内容的提问来源于stack exchange,提问作者Nikita Merkel
相关产品推荐
相关产品推荐

