• 静态代码检测工具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)
  • 相关阅读:
    py爬取英文文档学习单词
    windows 下使clion支持c++11操作记录
    angular在ie8下的一个bug
    连连看小游戏前端实现
    如何禁止页面文字被选中
    分享一个BUG
    描点链接元素的优化提升用户体验
    模拟淘宝滚动显示问题解决入口
    简易图片轮播效果
    支付战争
  • 原文地址:https://www.cnblogs.com/qiyer/p/14464462.html
Copyright © 2020-2023  润新知