首先介绍下private API 它共分为两类:
1 在官方文档中没有呈现的API(在frameworks 下隐藏)
2 苹果明确申明不能使用的API ,在privateFrameworks 下
然后我们用到的工具是class-dump+DumpFrameworks.pl
class-dump可以从编译后的Objective-C的二进制文件中提取对应的数据结构及函数等声明
class-dump下载地址http://www.codethecode.com/projects/class-dump/
DumpFrameworks.pl是一个脚本,会在你的主目录下生成private的.h文件
DumpFrameworks.pl下载地址:http://ericasadun.com/HeaderDumpKit/
pl脚本需要简单的修改一下路径。
用法:
1 将下载好的 class-dump 放入usr/local/bin 下.
如果 ‘/usr/local/bin’ 不知道在哪里,可以在terminal 下输入 ‘open -a Finder /usr/local/bin’ 以便打开目录.
记着 class-dump 要 使用 chmod 修改下执行权限. 例如:在usr/local/bin 对 class-dump 修改,可以这 样在terminal 切换到 usr/local/bin 目录下: chmod 777 class-dump .
2 将DumpFrameworks.pl 放入任意目录下.同样需要修改执行权限.
3. OK..现在所有的准备工作作好了. 我们在 terminal 的任意目录下 输入 : ./DumpFrameworks.pl
等待…
会有一个Heards 文件夹在你的主目录下. 里面包含了 Frmeworks 和 privateFrameworks 下所有的私有 API
这里说明一下,我在使用的时候有时候会报错,class-dump报错:Warning: This file does not contain any Objective-C runtime information. 目前还没有找到解决方案,估计是有些Frmeworks是用C写的,所以没法导出来。