Xcode Instruments中Points of Interest不显示的原因排查
Xcode里Points of Interest不显示的原因及解决办法
代码层面的问题
- signpost调用语法错误:参考的示例代码中
os_signpost写法存在问题,传递描述文本时需要添加格式占位符%@,正确写法如下:
let pointsOfInterest = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: .pointsOfInterest) os_signpost(.event, log: pointsOfInterest, name: "Done", "%@", "All done")
缺少格式占位符会导致系统无法正确解析事件,从而无法在Points of Interest面板中显示。
- OSLog实例初始化异常:需确保
subsystem参数使用当前App的bundle identifier,若Bundle.main.bundleIdentifier返回nil(如在App扩展或特殊测试场景中),日志将无法关联到目标App,自然无法在面板中显示。
Xcode调试配置问题
- 未启用Points of Interest面板:需在Xcode的Debug Navigator中手动开启该面板(你提供的截图已显示面板开启状态,但首次使用需确认是否勾选该选项)。
- 调试进程不匹配:确保当前调试的进程是添加了signpost代码的目标App进程,若调试其他进程,无法看到对应日志。
- 过滤规则设置错误:检查Points of Interest面板的过滤选项,是否误设置过滤规则导致目标signpost事件被隐藏。
系统与环境限制
- 系统版本过低:
os_signpost和Points of Interest功能仅支持iOS 12+/macOS 10.14+以上系统,若运行设备系统版本低于此,功能无法正常工作。 - 模拟器/设备兼容性问题:部分老旧模拟器存在日志采集兼容性问题,建议切换至最新版本模拟器或使用真机测试。
内容的提问来源于stack exchange,提问作者Arjan
相关产品推荐
相关产品推荐

