友盟系模块化升级遇到的问题
Posted wangjunling888
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了友盟系模块化升级遇到的问题相关的知识,希望对你有一定的参考价值。
友盟系模块化升级遇到的问题
好久没有更新过pod, 最近由于新需求添加了一个框架所以进行pod更新, 不更新不知道, 更新了吓一跳呀, Command + B 编译一下一大堆报错, 天啊, 我做错了什么? 去友盟官网翻看了文档才发现原来是 友盟把微信SDK给精简了, 删除了支付模块, 这还不算, 更重要的是pod库导入都变化了, 仔细阅读文档, 原来是友盟这边进行了组件化划分, 看起来是好事, 然后我就按照文档只是开始重新集成新的友盟
pod导入
更新前, pod是这个样子的
pod 'UMengUShare/Social/Sina'
pod 'UMengUShare/Social/WeChat'
pod 'UMengUShare/Social/QQ'
pod 'UMengUShare/Social/Facebook'
pod 'YWFeedbackFMWK' #, '~> 2.0.3.1'
pod 'UMengAnalytics-NO-IDFA'
更新后, pod是这个样子的,
pod 'UMCCommon'
pod 'UMCSecurityPlugins'
pod 'UMCShare/Social/ReducedSina'
pod 'UMCShare/Social/WeChat'
pod 'UMCShare/Social/ReducedQQ'
pod 'UMCShare/Social/Facebook'
pod 'UMCAnalytics'
pod 'YWFeedbackFMWK'
然后去更新pod, 终端执行 pod update 漫长的等待,终于更新完了, 打开项目一看不对呀, 一堆错, 然后再看终端出现这样一句话
[!] The 'Pods-your app name' target has frameworks with conflicting names: utdid.framework.
之前同时使用支付宝sdk和百川反馈Sdk的朋友肯定很熟悉这句话的意思, 这就是阿里系统一使用的一个id生成工具, 之前我有写过一篇博客 讲支付宝和百川冲突的 iOS支付宝AlipaySDK与阿里百川反馈YWFeedbackFMWK冲突 ,看到这个错我笑了, 阿里整天整这种内部冲突, 上次支付宝还有个去UTDID的sdk解决, 这次如何是好, 又一次打开躺着睡觉的钉钉app找到友盟的客服, 客服给出的解决方案如下图,
这不是扯淡么, 怎么能如此粗暴解决呢, 阿里系这么多产品总是出这种问题, 不应该从设计的时候就应该考虑吗, 算了不想说什么, 本来想着手动导入, 突然发现友盟文档里有句话 UMCSecurityPlugins是可选项, 好像是负责加密用的, 如果没有特殊要求这个就不用导入, 然后我就尝试删除这个框架, 重新更新 pod , 惊喜来了, 一切OK, pod顺利更新完!
全部搞定之后
编译又是一堆错误, 这里主要包含几种错误需要修改, 首先是头文件引入错误,
//旧版 #import <UMSocialCore/UMSocialCore.h> #import "UMMobClick/MobClick.h"
//新版 #import <UMCommon/UMCommon.h> #import <UMShare/UMShare.h> #import <UMAnalytics/MobClick.h>
修改完头文件, 编译依然报错, 这次是友盟统计报错,
//旧版友盟统计 初始化 - (void)setUMengAnalytics UMConfigInstance.appKey = UMengAppKey; UMConfigInstance.channelId = @"App Store"; // UMConfigInstance.eSType = E_UM_GAME; //仅适用于游戏场景,应用统计不用设置 [MobClick startWithConfigure:UMConfigInstance];//配置以上参数后调用此方法初始化SDK!
//新版本, 由于友盟加入了组件化, 初始化代码已经使用 UMConfigure 进行统一配置,所以不需要单独配置了 [UMConfigure initWithAppkey:UMengAppKey channel:@"App Store"]; // [MobClick setScenarioType:] 默认为一般应用统计, 所以非游戏app不需再写
修改完, 开开心心的编译一下, 问题又来了, 微信支付依然无法搞定, 然后看文档说需要完整版的微信sdk, 导入完整版的, 我看了一下我导入的就是完整版的呀, 为啥微信支付依然是有问题呢, 哎, 真是心累, 去微信官网看了一下sdk, 有两个版本, 一个是带支付的, 一个是不带支付的, 我推测友盟的完整版下载的一定是不带支付的. 下载完替换果然正常啦, 至此问题解决!
以上是关于友盟系模块化升级遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章