环境搭建
- mac OS系统升级到最新版, AppStroe下载安装
MacOS 下载安装不用翻墙, 正常网络就行, 但是极其花时间, 差不多要花3个小时 - xcode版本也升级到最新版
xcode最新版本下载安装也很花时间, 我有现成的安装包, 所以下载没花时间, 安装大概1小时 - APP源码下载打开
APP源码我使用SourceTree管理下载, xcode打开源码 - 编译配置,
这个就很泪目了, 每个工程都不一样, 最好找开发看, 能避免很多坑
模拟器不用开发者证书,直接编译安装
真机: 1. 设备的udid加入了这个APP的开发者证书, 2. 找开发要signing证书, 装在xcode里
执行步骤
参考文档: iOS (Object-C) 非单元测试状态下代码覆盖率获取尝鲜 · TesterHome
- app 项目添加XcodeCoverage依赖
公司内部的项目, 我没有提交代码的权限, 找开发加入了这个依赖
XcodeCoverage使用最新版本, 下面这一步就不用做了
- 其他步骤按照文档来
模拟器
模拟器完全按照文档能得出结果
真机
操作步骤稍微不同
- 在 xcode 中 build ,然后 run
- 在应用中做出操作
- 点击 home 键,应用进入后台,同时应用自动生成对应覆盖率文件
- 打开 Xcode->window->Devices ,选择运行应用的真机
- 在 Installed Apps 部分选择运行的应用,然后点击底部的齿轮按钮,选择 ‘Download Container’
- 把生成的 xcappdata 文件保存下来,然后在 finder 中打开
- 对 xcappdata 文件右键->显示包内容(show package content),然后打开
AppData/Documents/arm64/
,拷贝里面的所有 .gcda 文件 - 进入
项目目录/Pod/XcodeCoverage
,打开env.sh, 找到标红的路径, 把拷贝的.gcda拷入这个路径
-
回到 项目目录/Pod/XcodeCoverage
,运行命令./getcov --show
,即可自动生成覆盖率报告。
XcodeCoverage 分析
在项目目录/Pod/XcodeCoverage的目录下, 有一些脚本文件, 这些文件是做代码统计的核心内容
env.sh解析
exportenv.sh 解析
exportenv.sh在代码编译的时候, 会执行, 它把获取到的env.sh里用到的四个地址写入env.sh文件.
exportenv.sh在项目的这里被执行执行
我们编译代码(command+B)可以只编译, 会看到编译日志里, 执行到这个脚本