一,使用class-dump
1,class-dump下载:
dmg下载地址(在code7之后,使用有问题)
github源码下载地址(建议使用源码,然后自己编译)
2,class-dump安装:
编译之后就会获得class-dump,把它放到
"/usr/local/bin"
文件夹里;
注意,这个地址根据系统的不同有所差别;
有的人是放在
"/usr/bin"
这个目录的,这个根据自己的系统注意一下即可。
注意
:在iOS9之前,即Xcode7之前,可以直接去 dmg下载地址 即可,但是iOS9之后用这个版本导出的话会报下错
Input file (/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/System/Library/PrivateFrameworks/ChatKit.framework) doesn't contain an executable.
这是因为iOS9增加了一个叫
"the __DATA_CONST segment"
的东东。
二,class-dump + DumpFramework.pl
这个方法比第一种方法强大的地方就是可以通过一条命令把所有的私有API的头文件导出到一个叫
header
的文件夹里。
1,下载 DumpFramework.pl
class-dump的安装见第一种方法,DumpFramework.pl可以去 DumpFramework.pl 下载,放在任意目录下都可。
2,配置
打开DumpFrameworks.pl文件,把下面的地址改成你自己的地址
dump_frameworks('/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/System/Library/Frameworks',
'Frameworks');
dump_frameworks('/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/System/Library/PrivateFrameworks',
'PrivateFramework');
注意:
'Frameworks'
一定要换行。还有这里导出的是模拟器的私有API,因为class-dump 作用的对象必须是未经过加密的可执行文件,而从 app store 下载的 app 都是经过签名加密的,所以两个iPhoneSimulator.platform地方不能换成iPhoneOS.platform.
3,使用
cd到DumpFrameworks.pl的路径,并执行
$ ./DumpFrameworks.pl
如没有问题的话,所有需要的头文件都已经导出到
~/user/header
文件夹里。
三,
其实这是一种偷懒的办法,可以直接去github下载ios私有API头文件