iOS 私有 API 检查工具
iOS-private-api-checker 苹果 iOS 私有 API 检查工具 Developer tool to scan iOS apps for private API usage before submitting to Apple https://github.com/hustcc/iOS-private-api-checker
私有 API 检查的原因在于:苹果在 app 提审的时候,会检查 app 使用私有 api 的情况,对于使用了私有 api 的 app ,不予通过,这个工具的目地就是在提审之前检查一下,提高通过率。
一、功能
目前功能主要有以下:
- 从 ipa 中提取一些基本信息,例如 app 名字, sdk 版本,包名等,可以辅助 QA 日常工作。
- ipa 架构检查,可以看出是否支持 64 位架构,可以辅助 AppStore 提审。
- ipa 使用私有 api 情况,可以辅助 AppStore 提审。
- ipa info 和 provision 配置项的检查,获得授权设备 udid (参考项目 iOS-checkIPA )。
- 获取签名信息。
- 批量检查 APP ,并生成 excel 报告,截图见下方。
二、如何使用
1. 构建私有 api 库
db/dsidx_dbs.py 文件为解析 docSet.dsidx 的库,请实现将 docSet.dsidx 内容导出到 sqlite 中。 docSet.dsidx 是 xcode 作为代码提示的数据库,表示是 apple 公开的公有 api 。
修改 config.py 中 sdks_config 字典,增加各个 version 的 sdk 路径,然后运行 build_api_db.py ,会自动解析私有 api ,存存储到 sqlite 中。
(项目中的数据库内容是我编译 sdk7.0 的数据,可以直接用。)
2. 检查 ipa 私有 api
运行方式有二,建议第二种 web 方式:
修改 iOS_private.py main 方法中的 ipa 路径,运行即可。
使用 Web 上传运行的方式,运行 python run_web.py (请先配置 flask 运行环境),然后浏览器输入 127.0.0.1:9527 将 ipa 拖入上传框等待即可看到检查结果。
使用 batch_check 方法批量运行目录中的 ipa ,并生成 excel 报告。
三、 Screenshot
- 网页检查展示

- 批量检测生成 excel 报告概要

- excel 报告详细页

四、参考项目
- RuntimeBrowser
- XlsxWriter
- iOS-checkIPA
- [iOS-api-scan.md](iOS-api-scan.md)
五、 Note
私有的 api = (class-dump Framework 下的库生成的头文件中的 api - (Framework 下的头文件里的 api = 有文档的 api + 没有文档的 api)) + PrivateFramework 下的 api。- 私有 api 在公开的 Framework 及私有的 PrivateFramework 都有。
- 请暂时暂 mac 上运行, linux 上暂时没有找到合适的、代替 otool 的工具,求推荐^^!