Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 623|回复: 0

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

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-4-19 09:23:28 | 显示全部楼层 |阅读模式
    这两天改版一个旧的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’。

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-16 07:17 , Processed in 0.062965 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表