| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 3 个月前 | ||
| 3 年前 |
工具使用说明
使用方式
使用工具源码扫描
-
在package.json同级目录下执行npm install安装依赖
-
在package.json同级目录下运行工具:
扫描单个应用,例:
node .\src\entry\main.js --app 工程根目录 --sdk sdk根目录/9/ets --output 报告的输出路径 --format excel扫描多个应用,例:
node .\src\entry\main.js --appDir --sdkRoot sdk根目录 --output 报告的输出路径 --format excel
使用工具包扫描
- 下载应用API解析工具源码
- 在package.json同级目录下执行npm install安装依赖
- 使用:npm run build进行打包,打包成功后,会生成dist文件夹,文件夹下的apiCollector压缩包即为打包后的工具
工具包结构
apiCollector-x.x.x.zip
|- libs // ES库
|- api-collector.js // 执行脚本
查看工具命令行参数,api-collector.js 需要指定路径,以下例子命令行默认在解压目录下执行
node api-collector.js -h
Usage: api-collector [options]
collect api from app's source code.
Options:
-V, --version output the version number
--app <string> app root directory
--appDir <string> a path that contains multiple applications
--sdk <string> sdk path, need to specify the ets directory, e.g sdk-root/version/ets
--sdkRoot <string> sdk root path
--output <string> the path to output the report
--format <json,excel> format of the output report
--scanTest scan ohosTest
--debug output debug logs
--noRepeat apiInfos is not repeat
-h, --help display help for command
工具输出 app_api.xlsx 或者 collectedApi.json,具体格式和路径取决于 --format, --output 参数
扫描单个应用
node api-collector.js --app 工程根目录 --sdk sdk根目录/9/ets --output 报告的输出路径 --format excel
上述命令的行为:
- 解析 local.properties 获取 sdk 根目录
- 解析 build-profile.json5 获取 sdk 版本
- 拼接完整 sdk 路径,指向到 sdk 目录下的 ets 目录
- 扫描 build-profile.json5 中 modules 下的代码目录
上述命令执行时可能存在 local.properties 文件不存在,导致 sdk 根目录无法获取,此时需要使用 --sdkRoot 指定 sdk 根目录
node api-collector.js --app 工程根目录 --sdkRoot sdk根目录
上述命令执行时还可能存在 build-profile.json5 文件找不到,或者无法解析到 sdk 的版本号,此时需要 --sdk 指定 sdk 目录中 ets 目录的路径
node api-collector.js --app 工程根目录 --sdk sdk根目录/9/ets
扫描目录下的多个应用
node .\src\entry\main.js --appDir --sdkRoot sdk根目录 --output 报告的输出路径 --format excel
上述命令的行为:
- 搜集目录下所有工程路径
- 遍历所有工程路径,按单个应用的方式进行扫描
因此,上述命令也可能会遇到 sdk 路径无法识别的问题, 可以通过 --sdkRoot 指定 sdk 根目录
node api-collector.js --appDir 文件夹路径 --sdkRoot sdk根目录
扫描多个应用不支持 --sdk 参数,因为 --sdk 参数限定了 sdk 的版本号,而每个应用的版本号并不一致。批量扫描应用时,sdk 的版本号统一从 build-profile.json5 中 compileSdkVersion 字段获取,若 build-profile.json5 文件不存在或 compileSdkVersion 没有,则跳过此工程。
指令参数
--output 指定扫描报告的输出路径,不指定则默认输出在应用工程根目录
--format 指定扫描报告的格式, 支持 excel, json,默认为 excel 表格
--scanTest 扫描 ohosTest 目录下的代码
--debug 打开debug日志