iOS 中 react-native-wechat 与 UMeng分享(到微信)发生冲突的解决方案

关键字:iOS react-native-wechat umeng shareSDK conflict 友盟 微信 冲突

因项目中要使用UMeng分享到微信,和用微信支付。于是两边微信SDK发生冲突,友盟官方与微信官方,并未给出解决方案,Google、Baidu无果,各种耗时操作,终于配置出来了,希望能帮助遇到相同问题的小伙伴,解决方法如下:

1. 手动集成UMeng分享及相关所有组件

  • 全手动集成到项目中,注意这里没有使用Pods自动集成,因为不方便为Pods指定 node_modules的路径。
    UMeng的SDK 如下:


    iOS 中 react-native-wechat 与 UMeng分享(到微信)发生冲突的解决方案_第1张图片
    工程结构
  • 下载UMeng SDK的时候选择微信完整版,如下图:
    https://developer.umeng.com/sdk/ios

    iOS 中 react-native-wechat 与 UMeng分享(到微信)发生冲突的解决方案_第2张图片
    下载配置

    选择微信(完整版本)
    选择微信(完整版本)
    选择微信(完整版本)

    这步很重要

  • 下载UMeng SDK 过后,去除微信相关的header(.h)及library(.a),如下图:

iOS 中 react-native-wechat 与 UMeng分享(到微信)发生冲突的解决方案_第3张图片
image.png

2. react-native-wechat配置如下:

iOS 中 react-native-wechat 与 UMeng分享(到微信)发生冲突的解决方案_第4张图片
image.png

npm install 或者 yarn install

连接

react-native link react-native-wechat

这里可以使用自动连接,若有问题,或者需要自定义,可以使用手动链接(已使用自动连接的,可以忽略)

1. 将RCTWeChat.xcodeproj拖入RN的Libraries Groupg下,如图:
iOS 中 react-native-wechat 与 UMeng分享(到微信)发生冲突的解决方案_第5张图片
工程文件

以下操作Targets一定是你要运行的Targets,不然配置无效的
添加 Linked Frameworks and Libraries,如图:


iOS 中 react-native-wechat 与 UMeng分享(到微信)发生冲突的解决方案_第6张图片
添加RCTWeChat引用

添加 Header Search Paths, 如图:


iOS 中 react-native-wechat 与 UMeng分享(到微信)发生冲突的解决方案_第7张图片
添加Header Search Paths,不添加分享无微信

3 从微信官网下载完整的 SDK包:

iOS 中 react-native-wechat 与 UMeng分享(到微信)发生冲突的解决方案_第8张图片
微信下载选包含支付功能的SDK

:
在工程文件里找到RCTWeChat.xcodeproj >> show in finder,用微信官网下载的库,替换 node_modules里的文件,如图:


iOS 中 react-native-wechat 与 UMeng分享(到微信)发生冲突的解决方案_第9张图片
需要替换的文件

XCode >> command + shift + K

然后运行,搞定。

注意:

每次npm install过后,需要替换新安装的库,建议备份。
我项目这两个都是需要备份的,npm install 后过要替换回来。
这点有点麻烦,考虑自动化。


iOS 中 react-native-wechat 与 UMeng分享(到微信)发生冲突的解决方案_第10张图片
目录备份结构

你可能感兴趣的:(iOS 中 react-native-wechat 与 UMeng分享(到微信)发生冲突的解决方案)