这两天改版一个旧的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. .Net Core WebApi返回的json数据,自定义日期格式

    基本上所有的人都在DateTime类型的字段,被序列化成json的时候,遇到过可恨的Date(1294499956278+0800):但是又苦于不能全局格式化设置,比较难受.以往的方式,要么使用全局的 ...

  2. app开发技术调研

    l  面向消费者与公众的应用系统,主要分为3种主流的渠道: 1.   web应用 2.   基于腾讯微信开放api构建的微信app 3.   移动端app ll 在移动端app方面,通过调研,现主流的 ...

  3. Linux openvswitch 性能调优-flow-eviction-threshold

    原文:https://www.cnblogs.com/scottieyuyang/p/5683656.html Increasing the flow-eviction threshold The t ...

  4. MPLS 网络中的 MTU

    MPLS MTU的大小可以设置为64-65535之间,在MPLS网络中,标签的大小是计入到MTU中的,所以在MPLS网络MTU是一个常见的问题.     在Ethernet接口上,一般数据最长为150 ...

  5. JQuery Mobile - 为什么绑定事件后会被多次执行?

    JQuery Mobile 在绑定事件时候,发现会被多次执行,为什么啊? 原来,jquery click  不是替换原有的function ,而是接着添加,所以才会执行次数越来越多,怎么办才能按需实现 ...

  6. 预处理函数在app和蓝图级别的不同使用

    app级别 from flask import Flask from flask_sqlalchemy import SQLAlchemy # SQLAlchemy 类实例对象的创建一定要在引用蓝图之 ...

  7. 使用Navicat 创建mysql存储过程,实现日期加流水号序列

    目的:使用Navicat 创建mysql存储过程,实现格式为8位日期(年月日)+5位流水号序列. 步骤: 1.打开Navicat 登录数据库,点击导航栏上的函数,如下图: 2.点击新建函数,选择“过程 ...

  8. Educational Codeforces Round 26 A B C题

    题目链接 A. Text Volume 题意:计算句子中,每个单词大写字母出现次数最多的那个的出现次数(混不混乱QAQ). 解题思路:注意getchar()就没啥了. #include<cstd ...

  9. java获取当前文件路径的方法

    第一种: File f = new File(this.getClass().getResource("/").getPath()); System.out.println(f); ...

  10. Centos下用yum命令按照jdk

    一.查看是否已经安装了JDK #查看本机是否已经安装了jdk $ sudo yum list installed | grep java java--openjdk.x86_64 :.el7_6 @u ...