iOS静态代码检查工具Clang Static Analyzer介绍
2016-04-29 {{allComments.length}} 14453 干货分享Clang Static Analyzer是一款静态代码扫描工具,专门用于针对C,C++和Objective-C的程序进行分析。现在这款工具已经被Xcode集成,可以直接使用Xcode快捷键command+shift+B进行静态代码扫描分析,也可以单独在命令行下使用并提供html格式的输出报吿和xml格式的结果文件方便集成到Jenkins上进行展示。它默认的检查涉及以下几个方面:Core Checkers、C++ Checkers、Dead Code Checkers、OS X Checkers、Security Checkers、Unix Checkers。实际开发中通常遇到的问题主要包含以下几种:
· Branch condition evaluates to garbage value分支条件问题
· Dangerous variable-length array(VLA) declaration数组长度问题
· Dereference of null pointer空指针引用问题
· Dereference of undefined pointer value引用未定义指针问题
· Division by zero 除数为0问题
· Garbage return value返回值问题
· Stack address stored into global variable栈地址存储到全局变量问题
· Unix API问题
假设你的iOS项目名称为PROJECT,其对应的scheme为SCHEME则下载Clang Static Analyzer之后,找到目录下的scan-build文件,稍后会用到这个文件,在iOS项目PROJECT目录下运行下面的命令:
$scan-build -k -v -v -o ./clangScanBuildReports xcodebuild -
workspace PROJECT.xcworkspace -scheme SCHEME -configuration Debug -
sdk iphonesimulator ARCHS=i386 VALID_ARCHS=i386
然后生成的报告在clangScanBuildReports里面,点击index.html就可以查看,代码检查效果事例如下图所示:
点击进入详细说明之后如下图所示:
Clang Static Analyzer官网地址:http://clang-analyzer.llvm.org/index.html
如果你看的意犹未尽,如果你想随时随地充实自己,请扫描以下二维码,关注我们的公众账号,可以获取更多技术类干货,还有精彩活动与你分享~


