NSLog()是一个很好的工具,它能为调试带来很大帮助。但不幸的是,它过于昂贵,特别是在iPhone上,而且根据你是怎样使用它或你用它来记录什么,它有可能泄露一些敏感和私有信息。网上有些不同的方法在发行版中去除NSLog的方法。我在这里将其汇总。
首先在Xcode中打开<AppName>_Prefix.pch文件,加入:
1
2 3 4 5 6 |
#ifdef DEBUG
# define DLog(...) NSLog(__VA_ARGS__) #else # define DLog(...) /* */ #endif #define ALog(...) NSLog(__VA_ARGS__) |
/*xcode3.x设置如下
右击你的目标(target)点击 Get Info。选择 Build 一栏。将Configuration 设定为Debug。在Other C Flags 下加入-DDEBUG。
就这样。当你想在调试版下进行日志记录时使用 DLog()。而在发行版下DLog()被编译为空。使用 ALog()可在调试和发行版下进行记录。(A 代表 always。)
xcode4设置如下
在Preprocessor Macors下,Debug选项里设置DEBUG=1
其它编译选项不设置
*/
如果你希望用DLog替换源代码中的NSLog,这里有一个终端命令可以使用:
$ sed -i “.bak” ’s/NSLog/DLog/’ *.m
此命令会将所有.m文件备份为.bak。