使用 Infer 进行代码扫描

概要

Infer 是Facebook的一个开源代码扫描工具. 目前在移动端, Infer 是比较好用的一个检查空对象引用的静态扫描工具.

安装

如果使用 Mac 的话, 可以忽略 github 上的说明. 直接使用 brew安装

brew install infer 

使用

  • Android工程
infer -- gradle build
  • iOS 工程
    前提是确保命令行可以编译通过
xcodebuild -target <Target Name> \
-configuration <Build Configuration> \
-scheme <Schema Name>

TargetName, Build Configuration, SchemaName都可以通过

xcodebuild -list 

查找到
另外,

xcodebuild -showsdks

可以查到支持的sdk

如果命令行可以编译通过, 只需要前面加上 infer -- 就可以了

infer -- xcodebuild -target <Target Name> -configuration <Build Configuration> -scheme <Schema Name>

查看报告

结果会打印在终端的输出, 也可以通过 infer-out 路径下的文件来查看

常见的问题

  • 工程的绝对路径中, 请不要含有中文字符, 否则会有类似报错
...
File "/usr/local/Cellar/infer/0.8.1/libexec/infer/lib/python/inferlib/analyze.py", line 222, in run_command
    raise e
  • Infer needs a working compilation command to run
    infer运行后会发现类似如下的输出, 最后发现不了问题
*** ERROR: Failed to execute compilation command. Output:
clang: error: cannot specify -o when generating multiple output files
*** Infer needs a working compilation command to run.

在github上可以发现很多人遇到了同样的问题, 主要原因是因为
issue的详情

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容