iOS应用重签名

网上关于签名的脚本有很多,我找了个本人觉得比较好用的脚步iOS_resign_scripts,下载脚步里面有三个脚本文件,这里我只用了 ios_resign_from_app_to_ipa 这个脚步就可以达到我的目的了。

一、基础环境准备

1.准备需要重签名的IPA包

打开itunes 下载一个最新版本的微信ipa包,然后拷贝出来备用

看图1:


itunes.png

2. 准备 mobileprovision文件
mobileprovision 文件干嘛的,怎么创建这里就不详细说明了,搞iOS开发的都懂😏 这里将mobileprovision文件重命名 embedded.mobileprovision

看图2:


mobileprovision.png

3.准备 Developer_code_sign

找到步骤2中mobileprovision文件对应的证书,格式类似 iPhone Distribution: xxxx. (xxxxx) 搞iOS开发的都懂🤓,不懂是不是应该去找原因了🙄

看图3:

证书.png

4.已经脱壳的二进制decrypted文件

ipa脱壳也称砸壳,如何脱壳看这里不再解释了,微信砸壳会得到一个WeChat.decrypted文件, 重命名为WeChat,打开终端,输入 chmod 777 ,然后把 WeChat拖到终端上按回车 修改下权限。

看图4:

文件目录.png

二、开始操刀修改文件,重签名

搞iOS开发的都知道,在iOS系统上是通过 Bundle identifier 标识 APP 的唯一性的,那么要想在一个手机上装两个微信呢改下Bundle identifier 就可以实现了。

1.解压ipa
打开终端,cd 进入 图4所在目录,然后 运行命令:

 unzip WeChat_6.5.2.ipa -d WeChat_6.5.2_unzip

图5:


解压ipa.png

图6:


解压成功.png

图7:


解压的文件目录结构.png

2.替换砸壳了的WeChat二进制文件

图8:


Snip20161229_21.png

图9:

Snip20161229_22.png

3.修改 Bundle identifier

找到 包内容的info.plist 文件,修改 Bundle identifier
图10:


Snip20161229_26.png

Xcode 打开编辑修改 Bundle identifier 的内容
图11:

Snip20161229_25.png

4.删除微信包里面的扩展插件(PS 目前没找到好的办法签名他们,所以暴力删除它们)

图12:

Snip20161229_23.png

5.运行脚本,开始签名了,打开终端,cd 进入 图4所在目录,运行

sh ios_resign_from_app_to_ipa WeChat_6.5.2_unzip "iPhone Distribution: xxxx xx., xx. (xxx)" embedded.mobileprovision WeChat_6.5.2-resig.ipa

图13:

Snip20161229_28.png

签名成功:
图14:


Snip20161229_29.png

图15:

Snip20161229_30.png

6.双击itunes 打开安装,测试打开不闪退。
图16.

IMG_1818.PNG

推荐阅读更多精彩内容