游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

移动端代码质量管理与安全检测评估

  在前面的文章中已经详细介绍过Jenkins、Sonarqube的安装、配置及使用,对于Web端的代码质量管理通常相对容易,Jenkins配套Sonarqube很方便就能搞定。但是对于移动端来说,尤其iOS,集成和使用的复杂性会大幅提高,目前网络上有一些介绍的方法,但实际操作的过程中会存在很多坑。本篇文章,就带大家详细实操移动端代码质量扫描与安全检测评估。
  一、代码质量扫描
  Android的Sonarqube相对简单,这里不做过多介绍,重点介绍iOS的代码质量扫描。iOS代码质量扫描的核心是如何支持ObjectiveC和Swift的扫描。SonarQubeCommunity社区版免费开源,一般来说,社区版就符合大多数开发者的需求,针对大多数语言都可以免费扫描。然而对于iOS,社区版不支持ObjectiveC和Swift的扫描,因此网络上有单身做了相应的开源插件sonarswift来实现iOS的代码扫描。sonarswift的github地址为https:github。comIdeansonarswift,根据官方文档使用该插件的前提是要安装SonarQube、SonarQubeScanner、xcpretty、SwiftLint、Tailor、slather、lizard、OCLint。SonarQube和SonarQubeScanner在前面的文章中已经详细介绍过了,其他几个依赖我们一次介绍下。
  (1)xcpretty安装
  xcpretty是格式化xcodebuild输入的工具,使用ruby开发,安装命令如下:
  gitclonehttps:github。comBackelitexcpretty。gitcdxcprettygitcheckoutfixdurationoffailedtestsworkaroundgembuildxcpretty。gemspecsudogeminstallbothxcpretty0。2。2。gem
  (2)SwiftLint安装
  SwiftLint是一个用于强制检查Swift代码风格和规定的一个工具,基本上以RayWenderlichsSwift代码风格指南为基础。
  安装命令如下:
  brewinstallswiftlint
  (3)Tailor安装
  Tailor是一个用于苹果的Swift编程语言编写的源代码的静态分析和lint工具。安装命令如下:
  brewinstalltailor
  (4)slather安装
  slather为Xcode项目生成测试覆盖率报告并将其连接到CI。安装命令如下:
  sudogeminstallnusrlocalbinslather
  (5)lizard安装
  Lizard是一个可扩展的圈复杂度分析插件,适用于许多编程语言,包括CC(不需要所有头文件或Java导入)。安装命令如下:
  sudopip3installlizard
  (6)OCLint安装
  OCLint是一种静态代码分析工具,用于通过检查C、C和ObjectiveC代码来提高质量并减少缺陷。
  安装命令如下:
  brewinstalloclint
  (7)下载并安装完上述依赖后,通过https:github。comIdeansonarswift下载jar文件,并将下载的jar文件放到本地SonarQube安装目录的插件目录下,通常为usrlocalCellarsonarqubexxxlibexecextensionsplugins目录下。这时在SonarQube安装目录的bin目录下执行。sonarstart,可能会报错导致SonarQube无法启动。原因是如果SonarQube的版本是9以上,官方的sonarswift的jar为0。4。6版本,导致无法启动,需要在另一个分支上找适配的版本:https:github。comestebanhiguitadsonarswiftreleases,下载0。4。7版本即可。
  (8)在iOS项目的根目录下创建sonarproject。properties和runsonarswift。sh两个文件。
  1)其中sonarproject。properties为SonarQube相关的配置文件,可以直接拷贝https:raw。githubusercontent。comBackelitesonarswiftmastersonarproject。properties,然后根据自己的项目做相应的配置修改,其中比较关键的如下:
  项目使用的语言sonar。languageswiftProjectdescription源代码目录sonar。sourcesXXXDestinationSimulatortorunsurefireAsstringexpectedindestinationargumentofxcodebuildcommandExamplesonar。swift。simulatorplatformiOSSimulator,nameiPhone6,OS9。2指定模拟器,这里会有一个坑,为了配合runsonarswift。sh这个脚本,此处是必填项,可能存在找不到相应模拟器的问题,我们在runsonarswift。sh这个文件中做相应修改。sonar。swift。simulatorplatformiOSSimulator,nameiPhone13,OS15。0指定工程名或者空间名sonar。swift。projectXXX。xcodeprojsonar。swift。workspaceXXX。xcworkspace配置Schemesonar。swift。appSchemeXXX
  2)下载https:raw。githubusercontent。comBackelitesonarswiftmastersonarswiftpluginsrcmainshellrunsonarswift。sh的runsonarswift。sh文件,并修改其中的内容将buildfortesting和destinationSimulator去掉buildCmd(XCODEBUILDCMDclean)
  echonBuildingextractingXcodeprojectinformationif〔〔workspaceFile!〕〕;thenbuildCmd(workspaceworkspaceFile)elsebuildCmd(projectprojectFile)fibuildCmd(schemeappScheme)runCommandxcodebuild。log{buildCmd〔〕}
  这样就不会出现找不到模拟器的问题,完美解决。
  (9)执行iOS代码扫描
  启动SonarQube,在项目根目录下执行bashrunsonarswift。shnounittestsv命令,根据sonarproject。properties的配置,会自动进行代码扫描,扫描完成后在SonarQube即可看到相应的报告。
  二、安全检测评估
  移动端安全检测我们采用MobSF,移动安全框架(MobSF)是一个智能化、一体化的开源移动应用(AndroidiOS)自动测试框架,能够对iOS和Android应用进行静态和动态分析(动态分析目前只支持Android)。MobSF可以有效、快速地对应用APK和IPA文件及压缩的源代码进行审计分析。MobSF的安装和使用参照官方文档https:mobsf。github。iodocszhcn。安装和使用以MAC为例。
  (1)安装git,或者直接通过github上下载压缩包
  sudoaptgetinstallgit
  (2)安装Python
  sudoaptgetinstallpython3。8
  注意MAC电脑上默认安装有安装Python,需要修改环境变量以便切换到python3。
  (3)安装JDK8
  sudoaptgetinstallopenjdk8jdk
  (4)安装以下依赖
  sudoaptinstallpython3devpython3venvpython3pipbuildessentiallibffidevlibssldevlibxml2devlibxslt1devlibjpeg8devzlib1gdevwkhtmltopdf
  依赖包括xml解析、pdf生成等插件。
  (5)安装MobSF
  gitclonehttps:github。comMobSFMobileSecurityFrameworkMobSF。gitcdMobileSecurityFrameworkMobSF。setup。sh
  (6)运行MobSF
  。run。sh127。0。0。1:8000
  (7)运行MobSF
  在浏览器中,打开http:localhost:8000访问MobSFWeb界面。
  三、Jenkins集成sonarswift和MobSF
  由于MobSF需要上传APK或IPA,因此需要在使用MobSF框架前将相应的包打包出来备用。采用Jenkins实现代码扫描和安全检测自动化有两种方式,一种是在Jenkins中新建两个任务,分别进行代码扫描、编译打包和安全检测;另一种方式是同一个任务中设置依赖,先进行代码扫描、编译打包,然后再进行安全检测,我们以第一种方式为例。
  (1)代码扫描、编译打包
  新建一个自由风格的Jenkins项目,常规的配置代码获取等在之前的文章中有介绍,这里不再赘述。
  上图中的两个runsonarswift。sh和build。sh均位于iOS项目的根目录,build。sh为命令行编译打包的脚本,可以参考网上的相关文章进行编写。在构建步骤执行这两个步骤后就能将sonarswift扫描的结果呈现到SonarQube上,并且打包出来ipa。
  (2)安全检测
  1)在Jenkins中新建一个Pipeline项目,在构建触发器选择依赖上一个编译打包的工程。
  2)MobSF启动后访问http:127。0。0。1:8000apidocs,获取RESTAPIKey。
  3)在Pipeline项目配置中添加脚本
  脚本内容如下:
  pipeline{agentanystages{stage(Analysis){steps{script{echostartUpload上传应用包defAUTHKEYMobSF的RESTAPIKeyuploadcmdcurlFfileipa文件所在的具体路径http:localhost:8000apiv1uploadHAuthorization:{AUTHKEY}uploadresultshlabel:UploadBinary,returnStdout:true,script:uploadcmd}}}}}
  4)执行Jenkins任务,构建完成后ipa包直接上传到MobSF平台作静态分析。

ampampquot资本弃子ampampquot杨颖离开黄晓baby和黄晓明的那场世纪婚礼,到底有多壕?据悉这一场婚礼,就花费了黄晓明2个亿!2015年,在结婚一周前,黄晓明包下了整个上海展览中心作为婚礼场地,仅一天的租金就……我国首台低碳大吨位搬运机研制成功湖北日报讯(通讯员朱广)7月21日,在中铁二十四局沿江高铁武宜段当阳制梁场,国内首台电驱大吨位轮胎式搬运机成功搬运起一片900吨级高铁梁片,宣告该新型搬运机研制成功。该搬……2022年,国家为何要重点发展崇左?中国糖业看广西,广西糖业看崇左,说起崇左,大家首先想到的就是糖都。崇左地区是全国糖都不是浪得虚各,每个县市甘蔗林一片又一片,每个县市也有两座大糖厂,专业制糖。崇左除了是名……初探江苏园博园(8)法式花园行走方式:自驾行走时间:2021。5行走景点:江苏园博园地址:南京市江宁区湖圣路与湖法路交汇处附近东北行走路线:景区西平门时光艺谷法式花园英式花园……娱乐圈这4对明星,不是恋人却更胜恋人,不在一起可惜了全世界都以为我们在一起,但是只有我们自己知道,我们没有。娱乐圈有那么几对明星,相伴多年,在彼此最需要的时候,可以为对方义无反顾,但却始终没有走到一起,成为不少……我的电脑桌面凑了好久才攒出来的小桌面〔受虐滑稽〕一共是分了两个区域,笔记本这边基本就是电子设备,然后隔壁小桌子上摆的是些字帖经书等用品〔受虐滑稽〕ok,介绍一下吧。电脑:联想T……石榴石家族最贵top3,小芬达也有大潜力近年来,一抹温暖橘黄的身影屡屡受到梵克雅宝、尚美巴黎、海瑞温斯顿、香奈儿等一线大牌的青睐。用它做出来的珠宝,清冷中泛着一缕热情,璀璨中又多了一丝高贵,很快便受到了市场上各年龄阶……NBA头条太阳许久未看nba了,也不知过了多少年。我这个人很实在,因没有喜欢的球队,所以没有了激情,不像以前,因有姚明,开始了关注火箭;因有易建联,关注了雄鹿;因有林书豪,关注了尼克斯今年,……没有悬念了!火箭队和奇才队首轮谈判顺利结束沃尔将重返奇才在没有比尔情况下奇才队战绩一路下滑,截止到目前,奇才队已经掉到了东部倒数第四的位置了,如果继续输球的话恐怕连附加赛的资格都没有了,可不出意外的是奇才队今天还是输球了;北京时间的……临近国庆,将迎来煤市拐点?资讯日报9月28日煤市行情一、产地情况内蒙古地区,市场热度下降。整体来看,主产地市场煤仍然供不应求,市场户买煤仍不容易。不过,随着煤价的持续上行,部分客户的采购意愿明……中医养生国庆长假最忌久国庆小长假就要来了,相信不少人针对这个难得的假期已做出了一些安排。有的会出去旅游,有的会走亲访友,有的准备在家看电视,有的打算大睡特睡,还有的准备利用长假好好地锻炼身体。不过,……图赫尔球队或许还会再引进一名球员理解大家为何不选9号球衣直播吧8月6日讯英超第1轮切尔西将要对阵埃弗顿,赛前在接受采访的时候图赫尔谈到了球队的转会。图赫尔说:开始的时候我们计划了几个球员需要引进,但后来随着名字数量的增加,我们……
床单有油渍怎么办?床单有油渍怎么洗掉?很多人都有在床上吃饭的习惯,为什么呢?比较舒服自在任性啊!但是床上留下一个什么食物的油渍也是时有的事情。床单有油渍怎么办?床单有油渍怎么洗掉?床单有油渍怎么办浸泡法……床单有味道是怎么回事?床单有味道怎么办?新买的床单总是有一股味道十分难闻,这种味道是不是对身体有害。这样的床单可以用吗?床单有味道是怎么回事?床单有味道怎么办?小妙招教你解决床单异味问题。床单有味道是怎么回事?床单有……生理期内裤床单上有血迹怎么清洗的小妙招对于床单和内裤上有血迹这样的情况,其实多数都发生在女性身上,由其是在大姨妈来的时候,大家也都非常清楚白色的订单或者浅色的内衣上如果有血渍很难清洗干净,以下告诉女性朋友们清洗的小……美国花3亿美元证明其具备摧毁高轨道卫星的军事实力10月8号,来自哈勃望远镜的最新观测照片带来了一个好消息人类历史上第一次行星防御实验,获得了初步成功。美国宇航局的行星防御实验。简单说,就是通过发射一枚叫做飞镖的航天器,……野兽派是什么品牌?野兽派是哪个国家的?野兽派是著名的鲜花品牌,和一般的鲜花品牌不同,野兽派主打的是奢侈品类花束。那么,野兽派是什么品牌?野兽派是哪个国家的?野兽派是什么品牌上海野派电子商务有限公司,2011年……野兽派和roseonly哪个好?野兽派和roseonly区别野兽派和roseonly都是非常有名的鲜花店,主打的都是花类奢侈品店,因此,两者之间的较量是必须的。那么,野兽派和roseonly哪个好?野兽派和roseonly有什么区别?r……遮阳帽什么颜色最防晒?遮阳帽什么颜色好?前段时间还置身在水深中的我们现在又开始置身于火热。太阳的恩宠真是让人无福消受。此时各种防晒产品也开始兴盛起来,遮阳帽也成为了新宠。但是挑选遮阳帽有很多挑选的诀窍,其中很重要的一……农药弄到皮肤上怎么办农药碰到皮肤会怎么样农药在城市中见的还是比较少的,但是有些地方上的还是有在使用农药的,要是在使用农药的时候一不小弄到了皮肤上应该怎么办才好呢?农药弄到皮肤上怎么办农药弄到皮肤上,应立即用肥皂……代餐食品有哪些东西代餐食品是什么意思代餐食品是这几年都比较流行的,它是以低脂低卡的食品为原则,说是吃了之后就会有瘦身的效果,那么代餐食品有哪些?代餐食品是什么意思呢?代餐食品有哪些东西所谓代餐食品,就是取代……诺贝尔物理学奖授予量子力学获奖者证明爱因斯坦的错误北京时间10月4日17时45分,诺贝尔奖委员会公布了2022年物理学奖获得者:阿兰阿斯佩、约翰克劳泽和安东塞林格,以表彰他们在纠缠光子实验、确立对贝尔不等式的违反和开创性的量子……麦粒肿可以戴隐形眼镜吗麦粒肿能传染吗麦粒肿就是平常说的针眼,长针眼后要注意个人卫生,以免病情越来越厉害,那么麦粒肿可以戴隐形眼镜吗,麦粒肿能传染吗,下面一起来看看吧。麦粒肿可以戴隐形眼镜吗不可以。已经感染的……纯银怎么分辨真假五个方法教你立辨真假很多人都很喜欢购买银饰品,但是不知道自己所买的银饰品是否是真的纯银,其实辨别纯银很简单,仔细观察首饰,光泽度好做工细的并有店号的多为真的纯银饰品。纯银怎么分辨真假1、辨色……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网