如何在Flutter Release模式下查看iOS原生os_log日志?
在iOS Release模式下查看Flutter包生成的os_log日志
有几种可靠的方法可以在iOS物理设备的Release模式下查看这类日志:
方法一:通过Xcode设备日志工具
- 把你的iOS设备连接到Mac,打开Xcode
- 点击顶部菜单的
Window > Devices and Simulators(快捷键Shift+Cmd+2) - 在左侧设备列表选中你的物理设备,点击右侧面板的
View Device Logs - 在日志搜索框里,用你的应用Bundle ID、进程名,或者os_log使用的
category/subsystem作为关键词筛选,就能找到Release模式下的日志。后台运行产生的日志也会被记录在这里,只要设备保持连接状态即可。
方法二:用终端log命令实时监听/导出日志
- 连接设备到Mac,打开终端
- 先执行
log list devices获取你的设备UUID或名称 - 实时监听应用日志(替换成你的应用Bundle ID):
log stream --device <设备UUID或名称> --predicate 'process == "com.your.app.bundleid"' - 如果需要筛选特定的os_log类别或子系统(比如Flutter包指定的标识):
log stream --device <设备UUID或名称> --predicate 'subsystem == "com.your.flutter.package" OR category == "flutter_log"' - 要导出日志到本地文件,直接追加输出重定向:
log stream --device <设备UUID或名称> --predicate 'process == "com.your.app.bundleid"' > release_logs.txt
注意事项
- 先确认Flutter包在Release模式下没有禁用os_log输出:部分包会通过编译宏(比如
DEBUG)控制日志开关,需要检查包的配置,确保Release模式下日志功能是开启的 - 如果是App Store分发的应用,日志会缺少部分调试符号信息,但Ad Hoc、Enterprise分发或Xcode直接安装的Release版本,日志内容是完整的
- 可以开启Xcode的无线调试功能,这样不用一直插着USB线,也能捕获后台运行的日志
内容的提问来源于stack exchange,提问作者Jonny Shanahan
相关产品推荐
相关产品推荐

