zoukankan      html  css  js  c++  java
  • 静态代码检测工具Infer的部署

    背景:项目代码之前在静态检测这方面一般使用开发软件自带的Analyze功能。另外,依赖于大家的相互review机制保障代码的质量。开发软件自身的Analyze功能存在一定的局限性以及需要手动化,为了提升静态检测的自动化和更多的case点。调研了一下三方的检测工具,且考虑到iOS和android双平台,可维护性等,最后选择了facebook的Infer工具。

    以下说明部署的环境:

    • mac mini
    • jenkins
    • Xcode以及Command Line Tools环境
    • android sdk
    • git项目库
    • python

    遇到的坑以及解决方案:

    • brew install infer 方式安装的版本太老,运行会报错。
      解决方案:去github上下载最新的v1.0.0版本,解压,配置环境变量。

    • 执行检测命令出现一堆库授权问题,报错。
      解决方案:信任所有的库,当然其中libgmp 以及libsqlite那两个库可以移除不授权,不影响使用,其它都要授权。

    • 执行检测命令出现:“Uncaught Internal Error: (Unix.Unix_error "No such file or directory" connect "((addr (ADDR_UNIX sqlite_write_socket)))")”
      解决方案:因为我们项目是通过自己编写的shell脚本实现各个库的编译以及出包,指定的是Legacy Build System(使用New Build System会报错)。为了解决以上问题,单独建了一个InferBuild,指定使用New Build System,即解决问题。 说白了,Infer 必须使用New Build System(mac OS10.15.x)。

    • 出现报错“mac OS file system sandbox blocked open()”。
      解决方案:Infer环境问题,重新挪了一个文件夹路径解决。

    • Infer的二次编译
      解决方案:需要加上 -- reactive

    • android遇到的问题是mac上android sdk版本与项目使用的sdk版本不一致的问题,退回版本一致即可.

    • 关于jenkins的配置,以及自定义获取report.txt邮件等相关配置,以及规则不做多说。唯一注意的是,“ Project From ”需要填空,不然邮件会发失败。

    解决问题的能力很关键~(iOS开发交流群:219926126)
  • 相关阅读:
    POJ 3026
    POJ 1258
    POJ 1751
    一种用于三维物体建模的精确、鲁棒的距离图像配准算法
    人脸识别技术介绍和表情识别最新研究
    汇总|实时性语义分割算法(共24篇)
    ECCV2020最佳论文解读之递归全对场变换(RAFT)光流计算模型
    三维重建的定位定姿算法
    多视图几何三维重建实战系列- Cascade-MVSNet
    HybridPose:混合表示下的6D对象姿态估计
  • 原文地址:https://www.cnblogs.com/qiyer/p/14464462.html
Copyright © 2011-2022 走看看