iOS class-dump 反编译ipa包
最近上传AppStore,总是说包含第三方支付而被拒。
如何反编译ipa包,查看所有的头文件和方法名(包括私有方法名)?
1.找到ipa包所在位置(这里的ipa包是通过archive后,export导出到桌面上的)
2.使用UnRAR工具解压ipa,选中XXX.ipa,选择打开方式 ,选择UnRAR,找到XXX.ipa路径,点击Open
使用UnRAR打开后,XXX.ipa所在文件夹中会多出两个文件夹:Payload 、Symbols,此时Payload中存储的是对应的XXX.app 文件
方式1:XXX.app 文件比起这种解压方式,我感觉下面的方法更便捷:
找到XXX.ipa ,在同文件夹下复制一份修改后缀为zip,双击zip解压,里面会多出一个XXX文件夹,XXX里面会存储两个文件夹:Payload 、Symbols ,Payload中存储的是对应的XXX.app文件
方式2: XXX.app 文件或者直接右击ipa文件,选择打开方式,选择归档实用工具,XXX.ipa同目录下会多出一个XXX文件夹,XXX里面会存储两个文件夹:Payload 、Symbols ,Payload中存储的是对应的XXX.app文件
方式3: XXX.app 文件无论采取哪种方式,目的一样,都能获得XXX.app
3.下载安装class-dump-3.5.dmg 链接:http://stevenygard.com/projects/class-dump/
3.1 下载完成以后双击.dmg的文件,将里面的class-dump拷贝到/usr/local/bin路径下(快捷键 shift + command + G 弹出前往文件夹)
前往文件夹3.2 打开终端,在控制台输入class-dump,显示如下表示配置成功
class-dump命令4.打开终端,先进入.app文件所在路径;再输入 class-dump 命令进行反编译
4.1 $ cd (将 XXX.app 所在文件夹Payload拖过来) XXX.app Path
4.2 $ class-dump -H XXX.app
反编译命令此时,Payload文件夹中会出现XXX.ipa所有的.h文件(其中所有的方法名,包括.m中的私有方法名,都会在这些反编译的.h文件中展示出来)
反编译出.h文件找出一些方法名(不只是在.h声明的公有方法,也包括在.m中用到的私有方法)中存在的敏感词,修改掉重新打包。
反编译参考:https://www.cnblogs.com/liyy2015/p/6244235.html
下面附上archive并导出ipa包其中一种方式的步骤:
1.用Xcode打开项目
2.device 一项选择 Generic iOS Device (否则不能 archive)
3.选择目录栏里面 product -> archive ; 此时就可以打包成.xcarchive文件
archive图示如果已经生成archive后的文件,请忽略上述步骤
4.打开Archive包所在窗口,如果是新archive的包,会自动打开此窗口。选择目录栏里面 Windows -> Organizer ; 此时就可以打开archive窗口
打开archive包所在窗口图示如果已经打开archive窗口,请忽略上述步骤
5.导出ipa包,选择一个好找的路径,可以导出到桌面上
5.1 选择Export
导出ipa包图示15.2 选择导出方式:如果上传 AppStore的包 选择第一种;如果是 测试包 选择第四种
导出ipa包图示25.3 选择对应的开发者账号信息,如果在Xcode中已经配置好证书和描述性文件,可选择 Use local signing assets -> choose
选择证书5.4 导出到桌面,生成一个以 XXX + 时间 命名的文件夹,里面就是导出的 XXX.ipa包
导出ipa