Xcode8禁止系统log&真机调试NSLog无输出
2023-03-15 23:21:32 时间
更新到Xcode 8后,运行工程时系统会输出很多没什么用的log信息,要屏蔽掉可以进入Xcode最上方工程的Edit Scheme-> Run -> Arguments,在Environment Variables中添加一行:
OS_ACTIVITY_MODE = Disable
如下:
这样就解决了系统log的屏蔽需求。
但是!!!
连真机调试的时候NSLog输出的功能也失效了,那还怎么调试!
只能自己改写NSLog的实现宏定义了,利用printf()方法来实现。在功能的Prefix.pch文件中来写比较好,这样全局都可用,至于Prefix.pch文件是什么以及怎么创建,可以看我这篇文章:Xcode 6之后创建PCH文件
在Prefix.pch文件中添加以下代码:
#ifdef DEBUG
// 调试时改变NSLog方法,输出时间、方法名、行数、输入的内容
#define NSLog(format, ...) printf("
[%s] %s [第%d行] %s
", __TIME__, __FUNCTION__, __LINE__, [[NSString stringWithFormat:format, ## __VA_ARGS__] UTF8String]);
#else
#define NSLog(format, ...)
#endif
根据代码可以很明显地看出来,定义了如果是DEBUG调试状态,就重新定义NSLog方法,否则还是使用系统原生的实现。
在自己定义的方法中我们额外添加了一些输出的内容:时间、当前在的方法、其在代码中的行数以及我们要输出的内容。要自己添加什么也可以,总之是为了自己调试方便。
这样无论是真机调试还是模拟器调试就都可以输出我重新定义后的内容了。
相关文章
- 优秀的 Verilog/FPGA开源项目介绍(六)- MIPI
- PHP原理之内存管理中难懂的几个点
- FPGA和USB3.0通信-FX3硬件设计简谈
- 【科普】CAN总线介绍及FPGA实现方案简介
- AOP面向切面编程
- 开源应用中心 | 这款简单易用的开源系统,助你轻松管理和分享照片
- 如何基于OpenVINO加速飞桨模型推理?
- 大数据 | HDFS 常用操作命令
- 拯救童年系列-GameBoy介绍及FPGA实现
- Hibernate缓存何时使用和如何使用
- 优秀的 Verilog/FPGA开源项目介绍(七)- CAN通信
- 博客平台遭虚假勒索攻击、新黑客组织称对以色列的攻击负责|11月16日全球网络安全热点
- 三层架构与MVC谜团之答案揭晓
- Science|AI揭示了蛋白质复合物的结构
- 软件开发人员的“七重苦”
- 流量回放工具之GoReplay input_file 源码分析
- Compound 的潜在风险和改进
- 网络江湖内功篇之基于业务的网络监测技术
- Spring Cloud面试题
- Hibernate的缓存解读