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 ,不予通过,这个工具的目地就是在提审之前检查一下,提高通过率。
目前功能主要有以下:
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 的数据,可以直接用。)
运行方式有二,建议第二种 web 方式:
修改 iOS_private.py main 方法中的 ipa 路径,运行即可。
使用 Web 上传运行的方式,运行 python run_web.py (请先配置 flask 运行环境),然后浏览器输入 127.0.0.1:9527 将 ipa 拖入上传框等待即可看到检查结果。
使用 batch_check 方法批量运行目录中的 ipa ,并生成 excel 报告。
私有的 api = (class-dump Framework 下的库生成的头文件中的 api - (Framework 下的头文件里的 api = 有文档的 api + 没有文档的 api)) + PrivateFramework 下的 api
。 1
levyleo 2015-11-17 19:19:36 +08:00
markmark
|
2
evakiss 2015-11-17 19:20:12 +08:00
楼主,头像是你吗
|
4
Elethom 2015-11-17 19:26:31 +08:00
Application Loader 不是會檢查麼。
|
5
evakiss 2015-11-17 19:30:45 +08:00
@50vip 当然相信咯,而且楼主还玩贴吧啊 http://tieba.baidu.com/p/1603683320
|
7
typcn 2015-11-17 20:10:14 +08:00
在上传二进制文件的时候,提交审核之前,就会检查私有 API 的使用情况,在提交审核之后不会检查的。
而且想要绕过是非常简单的。。。通过云端的配置文件控制开关,从服务器上动态下载二进制文件并加载执行 |
9
ileenhow 2015-11-17 20:41:31 +08:00
楼主,头像真的是你吗
|
11
ddqp 2015-11-17 21:39:56 +08:00
就想知道头像是谁,老司机??
|
14
xuzhongzhou 2015-11-18 10:04:46 +08:00
@typcn “从服务器上动态下载二进制文件并加载执行”这个是不可行的, App Store 重签名后,你自己的二进制没办法和 App 的签名一致,跑不起来。
|
15
typcn 2015-11-18 10:08:26 +08:00 via iPhone
@xuzhongzhou dylib , bundle ,甚至直接把 binary 从服务器读取下来并在内存中执行,不写入文件都是可以的
@50vip 然而 qq 微信支付婊淘宝都有这样的开关....也没见管过 |
16
50vip OP @typcn appstore 本身很多条款都是模拟两可,很抽象的,比如:开关不行,但是打 patch 却是可以的,实际上两者并没有什么鸟区别。
至于哪些公司可以,哪些公司不可以,看和编辑的眼缘了~~ |
17
xuzhongzhou 2015-11-18 10:47:09 +08:00
@typcn 哦,好吧,我果然还是太实诚了,说的只是 iOS 8 新增的那个动态库能否运行的时候下载下来加载了跑。
|
18
zsj950618 2015-11-18 21:46:07 +08:00
头像。。。真的是真的吗。。。。
V 站的头像规则。。 https://www.v2ex.com/t/62637 |
19
hqs123 2015-11-19 08:11:15 +08:00
刚接触苹果开发,学习下
|
20
MrMign 2015-11-19 12:12:52 +08:00 via iPhone
参考项目的一个链接没有→_→
|