iOS 实时日志查看方法 使用Xcode Console 或跨平台工具
之前一直用 Xcode Console 看 App 的实时日志——设备连上 Mac打开 Xcode在 Devices 窗口里等着日志流输出。但在几个场景下不太方便一是 Xcode 索引项目时 Console 会卡二是只想看某个特定 App 的输出时日志流里混了大量系统消息三是手边只有 Windows 电脑或不想每次都开 Xcode。后来试了试其他方案发现 iOS 日志查看这块其实有几种不同的选择按场景来选会更顺手。Xcode Console 的基本用法Xcode Console 是 iOS 开发最常用的日志查看方式。设备连上 Mac在 Xcode 的 Device and Simulators 窗口里选连接设备就能看到实时日志输出。支持按进程筛选也能用搜索框过滤关键词。优点是 Xcode 开发的同学装好就用、零额外配置。缺点是 Xcode 启动慢、索引大项目时 Console 会卡住、日志量大时筛选不太顺手而且只能在 Mac 上用。另外 Xcode Console 主要显示 NSLog 输出printf 和 OSLog 的日志需要额外配置才能看到。如果项目用 OSLog 框架可以通过终端命令log stream --level debug获取更完整的日志输出效果比 Console 更细但要记住一堆参数。用 KeyMob 查看实时日志KeyMob 的实时日志功能入口在左侧导航栏的实时日志模块。点击绿色的开始按钮后工具开始输出 iOS 设备的日志流。和 Xcode Console 相比有几点区别一是可以设置只抓包含特定关键词的日志减少无关消息的干扰。二是支持指定 App 过滤——在日志列表里选中目标 App只显示该进程的输出。三是 Xcode Console 主要显示 NSLog 输出的日志而 KeyMob 在应用管理模式下选择运行可以看到 App 内 NSLog、printf 等函数的完整输出选择实时日志则专注显示 NSLog 的日志。四是不依赖 Mac在 Windows 和 Linux 上同样可以连接 iOS 设备查看日志适合团队里不同平台的开发者使用。日志查看之外KeyMob 的崩溃日志模块可以导出设备上的 crash report。命名格式是应用名-日期-时间.ips选中后直接查看崩溃堆栈内容不需要手动跑 symbolicatecrash 命令做符号化。对于线上问题的回溯分析比较实用省掉了从设备同步崩溃日志再到解析的中间步骤。什么场景用哪种日常开发调试时搭配 Xcode 用 Console 看日志最直接不用额外配置。脱离 Xcode 环境Windows 调试、快速日志定位或者需要精细过滤指定 App 输出时用 KeyMob 这类独立工具更灵活。排查线上崩溃日志时走 KeyMob 的崩溃日志模块或者第三方崩溃报告平台分工配合就行。