iOS 微信提示:签名失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 微信提示:签名失败相关的知识,希望对你有一定的参考价值。

参考技术A 这几天一直没细搞,后台那边说在弄着我这边就没管,但是好几天了还没有成功,自己也翻阅了下官方文档和其他项目。发现大部分的签名都是后台搞得,所以我就记录下防止以后再出现类似情况。总结了以下几点。

1.首先确认后台预支付的订单是否和微信支付对象PayReq中的属性值是否一一对应

2.确认sign 的值,微信中的支付对象有一个sing 属性,该属性为签名。该属性的值比较特殊,需要后台做好二次签名后才可以直接使用,如果后台没有做二次签名需要我们自己做的话需要用一下方法对,sign 值进行处理

3.MD5加密

iOS逆向重签名:微信重签名

目录:

1. iOS逆向重签名(一):签名原理
2. iOS逆向重签名(二):IPA重签名
3. iOS逆向重签名(三):微信重签名

学习了IPA包的重签名技术,下面将这项技术运用到实战中,尝试对微信重签名。微信的重签名也是大同小异,但是由于微信中含有Watch插件,这个部分不可签名,所以我们可以直接删掉,也不影响微信app的功能。

1、替换 embedded.mobileprovision文件

解压WeChat.ipa包,进入Payload文件,右键"显示包含内容"打开WeChat.app。将自己准备好的embedded.mobileprovision文件替换微信目录中的embedded.mobileprovision文件,如下图:

在这里插入图片描述

2、Framework动态库进行重签名

进入WeChat.app文件中的Frameworks文件,里面包含了四个动态库,如下图所示:

在这里插入图片描述

先cd到Frameworks目录下,然后对这四个动态库进行重签名:

YuanCan:~ ahdms$ cd /Users/jack/Desktop/WeChat/微信-7.0.4\\(越狱应用\\)\\ 2/Payload/WeChat.app/Frameworks 
YuanCan:Frameworks ahdms$ codesign -fs "Apple Distribution: Changsha xxx Information and Technology Co., Ltd. (xxx)" mars.framework
mars.framework: replacing existing signature
YuanCan:Frameworks ahdms$ codesign -fs "Apple Distribution: Changsha xxx Information and Technology Co., Ltd. (xxx)" marsbridgenetwork.framework
marsbridgenetwork.framework: replacing existing signature
YuanCan:Frameworks ahdms$ codesign -fs "Apple Distribution: Changsha xxx Information and Technology Co., Ltd. (xxx)" matrixreport.framework
matrixreport.framework: replacing existing signature
YuanCan:Frameworks ahdms$ codesign -fs "Apple Distribution: Changsha xxx Information and Technology Co., Ltd. (xxx)" ProtobufLite.framework
ProtobufLite.framework: replacing existing signature

3、删除不可签名的插件(还有Watch中的插件)

由于本地存在一些插件,这些插件是不可被我们重签,并且这个过程我们用不着,所以我们索性就删掉。 其中包括:整个目录PlugIns目录和整个Watch目录(因为Watch.app中也有个PlugIns)

在这里插入图片描述
在这里插入图片描述

4、WeChat.app重签名

在这里插入图片描述

YuanCan:Payload ahdms$ codesign -fs "Apple Distribution: Changsha xxx Information and Technology Co., Ltd. (xxx)" --no-strict --entitlements=entitlements.plist WeChat.app

WeChat.app: replacing existing signature

5、重新打包

重签名成功之后,删掉entitlements.plist文件,将Payload压缩成zip的包,然后将压缩包的zip后缀直接改成ipa就行了。

在这里插入图片描述

如果你觉得本篇文章对你有用,请给小编一点鼓励,点赞或打赏,感谢。

以上是关于iOS 微信提示:签名失败的主要内容,如果未能解决你的问题,请参考以下文章

微信支付商户签名错误

用PHP做微信支付签名错误,请教一下这个是啥原因

微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决

微信个性签名提示操作不成功,请修改或稍后再试

微信APP支付签名失败

微信网页开发异常——签名失败