之前我开源了一个项目occheck,它是一个检查内存泄漏和高危函数的自动化工具。但是如何利用好它呢?如果能够像Xcode静态分析那样能自动在编译时执行就好了。呵呵,言归正传,这篇文章将为你详细介绍如何在项目调试前进行自动检查,以达到减少不安全的代码目的。我们开始吧!

1、创建一个Runscript(运行脚本)

打开项目配置,选择合适的target,在右侧选择“Build Phases”。然后在下方点击“Add Build Phases”-“Add Run Script”。如下图:

image

2、输入相应的运行脚本

点击“Add Run Script”菜单后,将会在中间添加“Run Script”项,在此项的第二个文本框里输入脚本:

/path/to/occheck /path/to/class目录
如下图:

image

3、运行

Build&Run吧,如果检查到内存信息或高危函数,将无法运行。同时,在build日志里会显示那个类或文件出错了。如:

1
2
3
4
ERROR: QHTTPCacheManager cacheRootPath 没有在dealloc中release.
ERROR: CategoryView buttons 没有在dealloc中release.
ERROR: TodayDealListViewController dealInfosThisRounds 没有在dealloc中release.
ERROR: TodayDealListViewController dealInfosThisRound 没有在dealloc中release.