iOS测试工具系列| iOS静态代码检查工具Clang Static Analyzer介绍

Posted 百度QA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS测试工具系列| iOS静态代码检查工具Clang Static Analyzer介绍相关的知识,希望对你有一定的参考价值。

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返回值问题

  • 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官网


以上是关于iOS测试工具系列| iOS静态代码检查工具Clang Static Analyzer介绍的主要内容,如果未能解决你的问题,请参考以下文章

iOS逆向系列-逆向APP

使用OCLint和Sonar对iOS代码分析和质量管理

cppcheck使用大全

iOS性能调优之Analyze静态分析

使用OCLint和Sonar对iOS代码分析和质量管理

IOS工具篇 swift 机型判断 含iPhone14系列