这两天改版一个旧的APP,要旧貌换新颜,拿到app后进行编译,一直报下面的错误。
报不认识的符号名PayReq错误。奇怪,啥也没动就这样,真不知道给的包是否是原本就是个报错的工程。
无论怎样,要对它修改就先要跑起来啊。
根据错误提示,判断是libwechatsdk.a里面没有这个方法。顺藤摸瓜按照下面的步骤开始了解决旅途。
阶段一
1. 手动添加了微信支付SDK源码到工程
2. pod 'UMengUShare/Social/WeChat’添加了微信分享,
编译时报错以下:
说明导入的微信支付SDK中并无微信支付调用接口的实现。这多是复制的微信支付SDK有问题(老项目中带的,不知道来源是哪里)。那用pod方式就换成最新的吧。微信
阶段二app
1. pod ‘WechatOpenSDK' 添加最新的微信支付sdk
2. pod 'UMengUShare/Social/WeChat’添加了微信分享
Pod时报错以下:微信支付

提示libwechatsdk.a已经存储。
因而在工程搜一下:
果真libwechatsdk.a已经被友盟分享下载过了,可不是要报这个错吗。
步骤走到这里,看上去基本无解了,二者都包含,确定没法都下载啊,这可咋办呢,喝杯水冷静下。
我能够搜一下“如何用pod集成微信支付与友盟分享”啊.
在网上搜了一下,果真发现了有类似问题的文章。
发现友盟微信分享是分完整版和精简版的,感情我如今下的是完整版啊,因此才产生了冲突,那要找不包含libwechatsdk.a的版本,其实就是找精简版的了。
那就在网上找找友盟微信分享精简版的pod地址,贴上去就行了。ui
赶忙google一下

果真,看到了胜利的曙光。
因而火烧眉毛的替换掉pod 'UMengUShare/Social/WeChat’试一下。
阶段三
1. pod ‘WechatOpenSDK' 添加最新的微信支付sdk
2. pod 'UMengUShare/Social/ReducedWeChat' 添加友盟精简版微信分享
Pod install 结果以下:
OK了
builde一下,success经过。
经过查看WXApiObject.h文件声明发现
'WechatOpenSDK' 库其实 和‘UMengUShare/Social/WeChat’这个库很相似,里面暴露的接口几乎同样。
说明两种重复定义实现了大部份内容。
二者的区别是'WechatOpenSDK'库中的WXApiObject类多了一个第三方向微信终端发起支付的消息结构体,
在这个类中声明了个 @interface PayReq : BaseReq
来唤起微信的支付功能。
因此要同时实现微信支付和友盟微信分享
须要用友盟微信分享的精简版pod 'UMengUShare/Social/ReducedWeChat’与微信支付SDK pod ‘WechatOpenSDK’。