这两天改版一个旧的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’。

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

  1. 友盟分享到微信的几点备忘(IOS)

    1.下载最新的友盟分享版本,参考友盟官方的demo 2.注册微信开放平台用户,不是公众平台,注册应用 3.参考文档和demo,加入sdk包和相应的lib 4.在plist加入URL types.URL ...

  2. ios中调用友盟分享时qq可以分享但是微信失败,只显示文字,网页链接没有出现

    问题如下,最后在老大各种替换的情况下,找到了原因,是因为图片失效了,友盟分享微信时必须需要图片才可以,如果服务器图片失效,则会失败: 注意下面的图片是否能够获取???????????????????? ...

  3. iOS不用官方SDK实现微信和支付宝支付XHPayKit

    作者:朱晓辉Allen 链接:https://juejin.im/post/5a90dd3a6fb9a0634912b755 前言 前段时间由于项目需求,移除了项目中的微信支付SDK和支付宝支付SDK ...

  4. 友盟分享--集成QQ和微信

    随着社交工具的应用范围越来越广,分享一些内容的功能也开始要求实现了. 用得比较多的第三方,比如说友盟,比如说Share等等... 前几天刚用友盟写了集成QQ和微信客户端的功能,觉得有必要分享一下. 在 ...

  5. iOS开发——iOS10升级极光推送SDK、友盟分享SDK

    前不久升级了Xcode8 ,同时iOS10系统也推送久. 由于公司需要适配iOS 10系统,同时第三方sdk建议升级. 包含替换升级新的SDK和相应的代码修改. 主要分享如何升级极光推送SDK,友盟分 ...

  6. 开源微信支付SDK

    应该有一年多没在博客园上写文章了,毕竟是一个记录自己技术成长的平台,没能将写博客长期坚持下来,说起来也是挺惭愧的.对于自己的近况而言,确实平常加班也比较多,时间会比较压缩,所以到后来博客也基本停止了更 ...

  7. Android微信支付SDK

    App对接微信调起微信支付需要在微信平台注册,鉴别的标识就是App的包名,所以将申请的包名单独打包成一个Apk文件,则在其他的App调起此Apk的时候同样可以起到调用微信支付的功能.这样就实现了调起微 ...

  8. 支付宝支付 微信支付SDK接口不统一? 盘他!

      开发过支付宝.微信支付的同学都知道,微信的支付 API 设计感觉是 Java 开发工程师写的,远不如支付宝 SDK 的接口设计用起来顺手.在这里,统一封装微信支付和支付宝支付的API,使两种支付方 ...

  9. tp6中使用微信支付sdk

    一.下载微信支付sdk 二.将lib文件夹下的文件复制到目录:extend->WxPay 将example文件夹下的WxPay.Config.php文件也复制到:extend->WxPay ...

随机推荐

  1. GeoServer中配置GeoWebCache切片缓存目录

    war版的GeoServer中,默认情况下,GeoWebCache切片会缓存在C盘某目录下.该目录比较隐蔽,并且随着切片缓存的增多,所占空间也会越来越大,所以建议手动配置其切换缓存目录. 配置方式:在 ...

  2. 跨终端Web

    1.终端vs设备 H5页面运行在同一设备的不同终端下. (1)Web浏览器. (2)微信.QQ浏览器. (3)移动App的Webview. (4)TV机顶盒. 2.跨终端的实现方式 (1)响应式 存在 ...

  3. 一起学习MVC(4)Controllers的学习

                控制器Controllers Controllers为控制器文档,AccountControllers内的方法对应View→Account下的cshtml文件. 我们看到Aco ...

  4. VSTS 更名为 Azure DevOps

    微软正式对外宣布Azure DevOps,其实就是原来的VSTS,我们来看一下Azure DevOps的介绍: 今天我们宣布Azure DevOps.与世界各地的客户和开发人员合作,很明显,DevOp ...

  5. SQL Server OS 调度

    --SQL SERVER OS 采用合作模式的线程调度模式,即除非Worker主动放弃CPU,否则SQL OS 不会强制剥夺其CPU,从而减少Context Switch --默认设置下,SQL SE ...

  6. 基于MVC框架layui分页控件实现前端分页信息写法

    详细链接:https://shop499704308.taobao.com/?spm=a1z38n.10677092.card.11.594c1debsAGeak@{ ViewBag.Title = ...

  7. 使用Spring Boot,Spring Cloud和Docker实现微服务架构

    https://github.com/sqshq/PiggyMetrics     Microservice Architecture with Spring Boot, Spring Cloud a ...

  8. FFMpeg音频重采样和视频格式转

    一.视频像素和尺寸转换函数 1.sws_getContext : 像素格式上下文  --------------->多副图像(多路视频)进行转换同时显示 2.struct SwsContext  ...

  9. Queue-621. Task Scheduler

    Given a char array representing tasks CPU need to do. It contains capital letters A to Z where diffe ...

  10. 队列(链式队列)----C语言

    链式队列----用链表实现,链式队列就是一个操作受限的单向链表,如果读者了解单向链表的建立过程,那理解链式队列就很容易了,先回顾一下单向链表的建立过程 (不熟悉单向链表的可以先看看另一片随笔,再回来看 ...