原因:
输出的日志信息在app运行(机审)的时候是可见的,可以作为比对的一个方面
下面验证这个问题:
新建一个Xcode工程,命名为logDemo
在ViewController.m类viewDidLoad方法增加一条OC的输出
- (void)viewDidLoad {
NSLog(@"log测试信息");
[super viewDidLoad];
// Do any additional setup after loading the view.
}
复制代码
1.运行
查看Xcode Log输出
2.在iOS设备上直接运行app
对,就是点一下那个demo的图标
3.打开Mac系统 控制台App
长这样,Mac系统自带好多宝贝
4.选中左上角连接到mac的iOS设备, 查看设备
运行安装在设备上app之后,控制台App输出的log中包含了在代码中输出的log信息!
这时候老司机们可能就想到了——–
自定义NSLog方法,设置debug模式才打印log
例如这样:
#ifdef DEBUG
#define NSLog(...) NSLog(__VA_ARGS__)
#define debugMethod() NSLog(@"%s", __func__)
#else
#define NSLog(...)
#define debugMethod()
#endif
复制代码
燃鹅:
既然开发者能关闭开关,我是相信苹果有能力打开它的.
那么,移除log打印才是最彻底的办法!
需要注意的是,需要移除的log不仅限于OC的NSLog输出 (这不是自欺欺人吗)
工程中用到的swift、lua、C++、C#等所有语言的log输出都是需要注意的.
为此(鉴于手动注释的时候,太枯燥、恶心…),我在工具中增加了移除NSLog的功能,目前仅限于移除NSLog相关的log.它本来就是个混淆OC的工具,让它去移除其他语言的log,我感觉你在为难它(还不是因为懒吗)
提前祝长假快乐
本文使用 文章同步助手 同步
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END