为了账号安全,请及时绑定邮箱和手机立即绑定

iOS 微信支付SDK与微信友盟分享两者同时集成时,出现的问题与解决之路。

标签:
iOS

这两天改版一个旧的APP,要旧貌换新颜,拿到app后进行编译,一直报下面的错误。

报不认识的符号名PayReq错误。奇怪,啥也没动就这样,真不知道给的包是不是本来就是个报错的工程。

不管怎样,要对它修改就先要跑起来啊。

 

根据错误提示,判断是libwechatsdk.a里面没有这个方法。顺藤摸瓜按照下面的步骤开始了解决旅途。

 

阶段一

1. 手动添加了微信支付SDK源码到工程 

2. pod 'UMengUShare/Social/WeChat’添加了微信分享,

编译时报错如下:

说明导入的微信支付SDK中并没有微信支付调用接口的实现。这可能是复制的微信支付SDK有问题(老项目中带的,不知道来源是哪里)。那用pod方式就换成最新的吧。

 

阶段二

1. pod ‘WechatOpenSDK' 添加最新的微信支付sdk

2. pod 'UMengUShare/Social/WeChat’添加了微信分享

Pod时报错如下:

提示libwechatsdk.a已经存储。

于是在工程搜一下:

果然libwechatsdk.a已经被友盟分享下载过了,可不是要报这个错吗。

步骤走到这里,看上去基本无解了,两者都包含,肯定无法都下载啊,这可咋办呢,喝杯水冷静下。

 

我可以搜一下“如何用pod集成微信支付与友盟分享”啊.

在网上搜了一下,果然发现了有相似问题的文章。

发现友盟微信分享是分完整版和精简版的,感情我现在下的是完整版啊,所以才产生了冲突,那要找不包含libwechatsdk.a的版本,其实就是找精简版的了。

那就在网上找找友盟微信分享精简版的pod地址,贴上去就好了。

赶紧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’。

原文出处:https://www.cnblogs.com/zhou--fei/p/10257730.html 

作者:滴水微澜

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消