iOS应用脚本重签名的实现方法-创新互联
上一篇iOS APP签名详解我们了解了iOS签名的机制和原理,这一篇我们一起来动手写一个自动重签名的脚本,懒是程序员乃至人类进步的终极力量,造轮子写工具可以极大的避免重复性工作,为我们节省更多的时间放在思考上,话不多说撸起袖子开始干:
成都创新互联公司专注于康巴什企业网站建设,自适应网站建设,商城网站建设。康巴什网站建设公司,为康巴什等地区提供建站服务。全流程按需求定制开发,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务第一步:获取脱壳的ipa包
- 从iTunes 12.6.3及以前的版本上直接下载 (macOS Mojave Doesn't Support),这样获取到的是正版ipa,需要用Clutch、dumdecrypted等工具先脱壳,否则别人的加密验证不通过无法安装
- 各类助手上下载越狱版ipa包
- 越狱手机导出
- Xcode打包 等等
这里我下载了微信的越狱版ipa包用来演示。
第二步:命令行实现重签名
1、将ipa解压缩后前往.app所在目录,输入
codesign -d -vv WeChat.app
查看可执行文件的签名信息:
可以看到签名信息现在还是腾讯的
2、输入:
security find-identity -v -p codesigning
查看Mac本地的证书列表:
记下你要用来签名的证书双引号(包括双引号)中的字符串,一会儿会用到
3、确认ipa包是否已经脱壳,输入:
cd WeChat.app
otool -l WeChat | grep crypt
会输出:
cryptid为0即为已脱壳,为1为加密状态。这里有两组数据是因为这是个支持两种CPU架构的可执行文件,可输入file WeChat
查看可执行文件支持的架构:
4、删除无法签名的插件文件:PlugIns文件夹、Watch文件夹
5、对.app文件夹内的Frameworks文件夹中的每一个framework强制重签名:codesign -fs 步骤2中记下的证书信息 要签名的.framework
注意不要遗漏,每一个framework都要用自己的证书重签一下
6、将自己的描述文件名改为embedded.mobileprovision,并拖入到.app中,再将.app中info.plist文件里的Bundle identifier改成我们自己的BundleID
7、在.app同级目录下新建一个entitlements.plist文件,查看描述文件内容:
security cms -D -i embedded.mobileprovision
将Entitlements节点下的
... ...
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文名称:iOS应用脚本重签名的实现方法-创新互联
网页路径:http://myzitong.com/article/jicsh.html