美文网首页
iOS代码静态分析工具—Facebook Infer批量分析整个

iOS代码静态分析工具—Facebook Infer批量分析整个

作者: 漂移的地平线 | 来源:发表于2021-12-31 15:46 被阅读0次

    infer的使用需要安装,代码引用工具入侵代码 ,运行命令,查看分析报告文件这几步骤

    1、分析整个项目

    cd 到项目所在的目录

    infer -- xcodebuild -target InferTest -configuration Debug -sdk iphonesimulator

    结果

    Found1issueInferTest/InferTest.m:21:error:NULL_DEREFERENCE

    pointer `nsmeStr` last assigned on line20could be nullandis dereferenced by call to `setObject:forKey:` at line21,column9.

    19.if(self){

    20.NSString*nsmeStr=nil;

    21.>[self.dict setObject:nsmeStrforKey:@"name"];

    22.}

    23.returnself;

    Summaryof the reportsNULL_DEREFERENCE:1

    过滤掉我们引入的第三库等不想做分析的文件

    INFER_ARGS="--skip-clang-analysis-in-path^[\"Pods\"]"infer--xcodebuild-workspace./***.xcworkspace -configuration Debug -scheme ***

    2、Infer 工作的流程:

    第一个阶段是转化阶段,将源代码转成 Infer 内部的中间语言。类 C 语言使用 Clang 进行编译,Java 语言使用javac 进行编译,编译的同时转成中间语言,输出到 infer-out目录。

    第二个阶段是分析阶段,分析 infer-out 目录下的文件,分析每个方法,如果出现错误的话会继续分析下一个方法,不会被中断,但是会记录下出错的位置,最后将所有出错的地方进行汇总输出。默认情况下,每次运行 infer 命令都会删除之前的 infer-out文件,你可以通过 --incremental 参数使用增量模式。增量模式下,运行 infer 命令不会删除 infer-out文件,但是会利用这个文件夹进行 diff,减少分析量。

    3、问题类型

    常见的问题传送门:https://github.com/facebook/infer/issues

    下篇介绍java静态代码分析工具Sonarqube

    相关文章

      网友评论

          本文标题:iOS代码静态分析工具—Facebook Infer批量分析整个

          本文链接:https://www.haomeiwen.com/subject/xqngqrtx.html