[iOS越狱开发 之六]使用class-dump导出Frameworks头文件

个人原创,转帖请注明来源:cnblogs.com/jailbreaker

class_dump这个工具,可以导出sdk中似有api的头文件,也可以导出别人的app中使用的头文件,工具是开源的,作者网站:http://stevenygard.com/projects/class-dump/

去网站下载后 dmg后 打开并把 class-dump copy 到 /usr/bin/ 目录下(这是我的bin目录,可能和你自己的路径不同),可以是使用 open -a finder /usr/bin  命令打开。

接着修改下 class-dump 权限,终端输入 chmod 777 /usr/bin/class-dump。

网上有个perl写的脚本(DumpFrameworks.pl),可以直接导出Frameworks 和 PrivateFrameworks 的头文件,2个Frameworks的路径更改下,我直接贴上DumpFrameworks.pl的源码。

#!/usr/bin/perl

#

# 24 November 2008

# Framework Dumping utility; requires class-dump

#

use strict;

use Cwd;

use File::Path;

my $HOME = (getpwuid($<))[7] || $ENV{‘HOME‘}

ordie"Could not find your home directory!";

# This command must be in your path.

# http://www.codethecode.com/projects/class-dump/

my $CLASS_DUMP = ‘class-dump‘;

# Public Frameworks

dump_frameworks(‘/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks‘,

‘Frameworks‘);

# Private Frameworks

dump_frameworks(‘/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/PrivateFrameworks‘,

‘PrivateFrameworks‘);

sub dump_frameworks

{

my($dir, $subdir) = @_;

opendir(my $dirh, $dir) ordie"Could not opendir($dir) - $!";

# Iterate through each framework found in the directory

foreach my $file (grep { /\.framework$/ } readdir($dirh))

{

# Extract the framework name

(my $fname = $file) =~ s/\.framework$//;

print"Framework: $fname\n";

my $headers_dir = "$HOME/Headers/$subdir/$fname";

# Create the folder to store the headers

mkpath($headers_dir);

# Perform the class-dump

my $cwd = cwd();

chdir($headers_dir) ordie"Could not chdir($headers_dir) - $!";

system($CLASS_DUMP, ‘-H‘, "$dir/$file");

if($? == -1)

{

die"Could not execute $CLASS_DUMP - $!\n";

}

chdir($cwd) ordie"Could not chdir($cwd) - $!";

}

}

保存好之后,终端进入DumpFrameworks.pl所在的目录 执行命令  ./DumpFrameworks.pl

命令执行完,在用户目录下 会出现 Headers,里面包括了我们导出的Frameworks 和PrivateFrameworks 文件夹,见下图:

时间: 2024-10-10 22:20:24

[iOS越狱开发 之六]使用class-dump导出Frameworks头文件的相关文章

【iOS越狱开发】如何将应用打包成.ipa文件

在项目开发中,我们常常需要将工程文件打包成.ipa文件,提供给越狱的iphone安装. 下面是一种方法: 1.首先应该给工程安装好配置文件(这里不再敖述),在ios device的状态下,运行成功. 2.选择Product->archive,如下图3.点击Distribute按钮,弹出新窗口,选择Export as Xcode Archive,如下: 4.弹出是否保存,点击save.5.选择生成的文件,xxx 13-5-10 下午4.00.xcarchive,右键点击,选择Show Packag

【iOS越狱开发】怎样将应用打包成.ipa文件

在项目开发中.我们经常须要将project文件打包成.ipa文件.提供给越狱的iphone安装. 以下是一种方法: 1.首先应该给project安装好配置文件(这里不再敖述),在ios device的状态下.执行成功. 2.选择Product->archive,例如以下图 3.点击Distributebutton,弹出新窗体,选择Export as Xcode Archive,例如以下: 4.弹出是否保存,点击save. 5.选择生成的文件,xxx 13-5-10 下午4.00.xcarchiv

[iOS越狱开发 之十]dump自己的app

个人原创,转帖请注明来源:cnblogs.com/jailbreaker 之前在[iOS越狱开发 之六]使用class-dump导出Frameworks头文件,通过一个perl脚本来dump出Frameworks的所有头文件,这片帖子主要讲dump一个app的实战,创建一个singleView的app,名称myApp,添加了个MyClass类,立马包含2个方法,一个是在Interface里公开的,另外个方法是非公开的,直接看下图. main.m 里调用公开的showInfo方法(不修改main.

关于ios越狱开发的那些事

也许吧,每每接触某些新东西的时候,都有点犯晕吧,这不是应该要的. 第一次接触ios越狱开发,也是这样吧.这篇主要是从无到有的说一下ios越狱的开发,网上很多的教程大部门都比较旧了吧,放在新设备上总是出现这样那样的问题,使人很是头疼. 从windows转到mac下开发,总有这个那个的不适应.习惯了vs的开发,突然用起了xcode难免有些为难,不是说xcode不好,两者都是非常好用的工具. 当然了,开发越狱程序和日常开发的iOS程序很相似,不过,越狱程序能做更强大的事情.你的设备也必须是要越狱的,你

iOS越狱开发(一)

做越狱开发也有一些时间了,有很多东西想总结一下,希望给他人一些借鉴,也是自己对过去开发经历的一些总结.个人不推荐使用盗版,这里主要以技术介绍为主. 这个系列里面主要介绍怎样进行越狱开发,涉及到以下几个方面: (1)主要涉及到越狱市场的建立,在App内部实现ipa的安装和卸载以及更新.参照的对象就是91助手,25pp,同步推那样的应用.建立一个盗版的App Store.当然了,如果通过299刀的企业证书的话,是不需要通过Cydia的,直接通过网页链接就可以实现app的推广,有一定的风险.这里面涉及

[iOS越狱开发 之九]使用Theos开发SpringBoard的Tweat

个人原创,转帖请注明来源:cnblogs.com/jailbreaker 前面讲到使用 [iOS越狱开发 之七]使用iOSOpenDev开发SpringBoard的Tweat,非常易用,但必须知道实质还是依靠Theos来创建,所以必须学会用Theos直接创建Tweat. 首先,通过theos/bin/nic.pl生成一个Tweat项目,步骤如下: 1.设置环境变量    export THEOS=/opt/theos 2.终端cd进入打算保存项目的文件夹 3.创建工程,终端输入 $THEOS/b

[iOS越狱开发]用theos和iOSOpenDev搭建开发环境

个人原创,转帖请注明来源:cnblogs.com/jailbreaker 越狱开发方法很多,很多比较繁琐,TheOS的出现,可以说是逆天了. TheOS被设计为一个在基于Unix平台(Mac OS X.IOS…)和大多数的Linux平台下开发IOS程序的集成开发环境.说是集成开发环境,其实就是给我们准备好了一些代码模板.预置一些基本的Makefile脚本,我们还是要在Terminal中完成一些关键操作 而iOSOpenDev则集成到xcode里,基于TheOS的开发,编译更方便,不用自己写Mak

ios越狱开发随感

这两天需要看一下某app的view结构,所以需要一些越狱知识,下面对今天的实践做些总结. 越狱开发必须安装,cydia 和iFile,Terminal. Cydia安装越狱插件必备,越狱中的AppStore,iFile文件管理利器,和Mac互传文件,目录管理等.Terminal 就是终端,不过好多命令都没有,今天刚学习越狱第一天没发现什么特别用处,直接用iFile就好了. 附上一篇链接 如何 使用reveal 看其他app view 结构  http://c.blog.sina.com.cn/p

[iOS越狱开发 之七]使用iOSOpenDev开发SpringBoard的Tweat

个人原创,转帖请注明来源:cnblogs.com/jailbreaker Tweat可以理解为“外 挂”程序,可以做一些hook,给iOS打补丁的功能,这里我们用iOSOpenDev提供的Logos Tweak模版开发. 这篇blog我们hook的是SpringBoard,简称SB,其是iOS中的桌面管理器,之前的帖子在安装完deb之后,我说重启下设备,实际上指的就是重启SB,头文件:https://github.com/thomasfinch/iOS-7-SpringBoard-Headers