友盟系模块化升级遇到的问题

Posted wangjunling888

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了友盟系模块化升级遇到的问题相关的知识,希望对你有一定的参考价值。

友盟系模块化升级遇到的问题

好久没有更新过pod, 最近由于新需求添加了一个框架所以进行pod更新, 不更新不知道, 更新了吓一跳呀, Command + B 编译一下一大堆报错, 天啊, 我做错了什么? 去友盟官网翻看了文档才发现原来是 友盟把微信SDK给精简了, 删除了支付模块, 这还不算, 更重要的是pod库导入都变化了, 仔细阅读文档, 原来是友盟这边进行了组件化划分, 看起来是好事, 然后我就按照文档只是开始重新集成新的友盟

  1. 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顺利更新完!

  1. 全部搞定之后

    编译又是一堆错误, 这里主要包含几种错误需要修改, 首先是头文件引入错误,

    //旧版
    
    #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, 有两个版本, 一个是带支付的, 一个是不带支付的, 我推测友盟的完整版下载的一定是不带支付的. 下载完替换果然正常啦, 至此问题解决!

以上是关于友盟系模块化升级遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

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

友盟+《小程序用户增长白皮书》:从五个角度入手分析小程序数据

Android友盟增量更新

android 怎么更新友盟sdk

2017年第一篇博客--关于集成友盟和微信支付等遇到的坑

安卓使用友盟推送问题总结