Xcode调试器使用PO命令时出现虚拟文件系统覆盖文件缺失错误
po命令表达式解析失败(缺失all-product-headers.yaml)的问题 当执行LLDB命令 po companyPageProfileVM.segmentIndex 时,出现表达式解析失败、提示找不到InputBarAccessoryView对应的all-product-headers.yaml文件,且常规的清理Derived Data、重启Xcode等操作无效时,可以尝试以下方案:
重新编译Pod的对应配置
报错路径指向Release-iphonesimulator下的文件,若当前调试使用Debug配置,可能Pod的Release构建产物不完整。可以:- 在Xcode Workspace中打开Pods工程,选中InputBarAccessoryView目标
- 切换到
Release-iphonesimulator配置,执行一次Build操作 - 或者终端执行
pod install --repo-update,强制更新Pod并重新生成所有构建配置
检查Pod的Build Settings
找到InputBarAccessoryView目标的Build Settings:- 搜索
Generate all product headers,确保Debug和Release配置下均设置为Yes - 检查
Headers分组下的Public Headers Folder Path、Private Headers Folder Path,确认路径无拼写错误或异常
- 搜索
手动创建缺失的yaml文件
导航到报错的目录:/Users/imac/Library/Developer/Xcode/DerivedData/MyBridge-fdehpisvsuyedxbytdmnccviakbp/Build/Intermediates.noindex/Pods.build/Release-iphonesimulator/InputBarAccessoryView.build/,若目录存在但缺失all-product-headers.yaml,手动创建一个空文件,之后重新Build主项目切换调试的Build Configuration
如果当前使用Release配置调试,尝试切换到Debug配置运行项目后再执行po命令。Debug配置下LLDB对表达式解析的支持更完善,且Pod的Debug构建产物通常包含更完整的调试信息重置LLDB模块缓存
在Xcode调试控制台依次执行以下命令:command script import lldb lldb.target.module_cache.Clear()重置完成后重新尝试
po命令
内容的提问来源于stack exchange,提问作者Jay kumbhani

