升级指南
为了更好的SDK接入体验和性能、结构优化,以及兼容系统升级的变化,SDK 在迭代升级的过程中进行的不同程度的重构及接口的增删改,使得可能原接入过 SDK 的开发者需要有部分修改。下面将几项业务 SDK 的接口和接入方式的变动进行说明,开发者需要对说明中的版本对比项目中 SDK 的版本查看是否要进行调整。
7.4.6版本集成升级必读
该文档适用于iOS组件化统计SDK7.2.0及以上版本。友盟+ iOS SDK适用于iOS 8.0及以上操作系统。
1.基础组件库从7.2.6及以上版本开始,从UMCommon.framework文件中独立了Deeplink能力和ABTest能力,可以按需集成。其中Deeplink能力需要下载智能超链SDK获取UMLink.framwork文件。
2.基础组件库从7.2.5及以上版本开始,去除了UMCrash.framework文件。如果需要错误捕获能力,请下载应用性能监控SDK。稳定性模块再次升级,独立为应用性能监控产品,新增用户细查、崩溃回调等多种功能。若同时需要统计和崩溃捕获能力,请一同勾选下载应用性能监控SDK。
3.必须集成包内提供的 UMDevice.framework
4.自动集成时,需要由原来的pod 'UMCCommon'变为
pod 'UMCommon'//由原来的UMCCommon变为UMCommon(必选)
pod 'UMDevice'//(必选)
pod 'UMAPM'//关注crash数据需集成,原错误分析升级为独立产品U-APM(可选)5.Targets->BuildSettings 中 , Other Linker Flags增加-ObjC,⼀定要添加此项,注意是⼤写C,不是⼩写c。
6.正式版基础组件库统计SDK7.2.0及以上版本仅⽀持如下表格中特定版本业务SDK,混⽤可能导致不可预知问题(例如:崩溃,⽆数据等)
应用性能监控SDK | 推送SDK | 分享SDK | 游戏统计SDK | 智能登录SDK |
v1.8.6 | v3.3.0 | v6.10.0 | v7.2.0+G | v1.4.0 |
7.如果为初次集成U-Game的用户,可以集成U-App后按照以下埋点方案进行游戏场景统计:https://developer.umeng.com/docs/119267/detail/140362
8.新增扫码集成测试功能
配置URL Schemes
新版集成测试需要配置App的URL Scheme,URL Scheme 位于项目设置 target -> 选项卡 Info - > URL Types,填入的URL Schemes:um.该app的appkey。

在AppDelegate中调用函数[MobClick handleUrl:] 来接收 URL
//iOS9以上使用以下方法
- (BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url options:(nonnull NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
if ([MobClick handleUrl:url]) {
return YES;
}
//其它第三方处理
return YES;
}
//iOS9及以下使用以下方法
- (BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(nonnull id)annotation
{
if ([MobClick handleUrl:url]) {
return YES;
}
//其它第三方处理
return YES;
}7.4.2版本升级说明
从组件化版本7.2.5升级到7.3.5版本说明
统计SDK升级步骤
1.基础组件库 7.4.X版本仅支持如下表格中特定版本业务SDK
应用性能监控SDK | 推送SDK | 分享SDK | 游戏统计SDK | 智能登录SDK |
v1.8.6 | v3.3.0 | v6.10.0 | v7.2.0+G | v1.4.0 |
2.自动集成升级,由原来的pod 'UMCCommon'变为
pod 'UMCommon'//由原来的UMCCommon变为UMCommon
pod 'UMDevice'
//可选集成,对应产品中稳定性模块(错误捕获),该功能已经独立成为新的应用性能监控产品U-APM
pod 'UMAPM'3.手动集成,如果不需要稳定性模块(错误捕获),可以删除原来导入的UMCrash.framework;如果还需要稳定性模块(错误捕获),则需引入UMAPM.framework.
新版本SDK变化
1.删除UMCrash.framework,如果还需要稳定性模块(错误捕获),则需引入UMAPM.framework.
2.基础组件库从7.2.6及以上版本开始,从UMCommon.framework文件中独立了Deeplink能力和ABTest能力,可以按需集成。其中Deeplink能力需要下载智能超链SDK获取UMLink.framwork文件。
从组件化版本7.2.0-7.2.4升级到7.3.5版本说明
统计SDK升级步骤
1.基础组件库 7.2.X版本仅支持如下表格中特定版本业务SDK
应用性能监控SDK | 推送SDK | 分享SDK | 游戏统计SDK | 智能登录SDK |
v1.8.6 | v3.3.0 | v6.10.0 | v7.2.0+G | v1.4.0 |
2.工程中需引入 UMDevice.framework
3.自动集成升级,由原来的pod 'UMCCommon'变为
pod 'UMCommon'//由原来的UMCCommon变为UMCommon
pod 'UMDevice'
//可选集成,对应产品中稳定性模块(错误捕获),该功能已经独立成为新的应用性能监控产品U-APM
pod 'UMAPM'4.手动集成,如果需要稳定性模块(错误捕获),则需引入UMAPM.framework.
5.基础组件库从7.2.6及以上版本开始,从UMCommon.framework文件中独立了Deeplink能力和ABTest能力,可以按需集成。其中Deeplink能力需要下载智能超链SDK获取UMLink.framwork文件。
新版本SDK变化
1.增加UMDevice.framework
2.Crash捕获能力删除,如果还需要稳定性模块(错误捕获),则需引入UMAPM.framework.
3.基础组件库从7.2.6及以上版本开始,从UMCommon.framework文件中独立了Deeplink能力和ABTest能力,可以按需集成。其中Deeplink能力需要下载智能超链SDK获取UMLink.framwork文件。
从组件化版本5.0.0以上7.0.0以下版本升级到7.3.5版本说明
统计SDK升级步骤
1.删除工程中的UMAnalytics.framework,引入UMCommon 7.2.X版本SDK到工程中,覆盖老版本2.引入统计头文件修改,将以前
#import <UMAnalytics/MobClick.h>全部修改为
#import <UMCommon/MobClick.h>2.去掉场景设置接口,将工程中已设置的场景删除掉
+(void)setScenarioType:(eScenarioType)eSType;3.去掉错误统计设置接口
+(void)setCrashReportEnabled:(BOOL)value;4.Targets->BuildSettings 中 , Other Linker Flags增加-ObjC,一定要添加此项,注意是大写C,不是小写c。
5.基础组件库 7.2.X版本仅支持如下表格中特定版本业务SDK
应用性能监控SDK | 推送SDK | 分享SDK | 游戏统计SDK | 智能登录SDK |
v1.8.6 | v3.3.0 | v6.10.0 | v7.2.0+G | v1.4.0 |
6.工程中需引入 UMDevice.framework
7.自动集成升级,由原来变为
pod 'UMCommon'//由原来的UMCCommon变为UMCommon
pod 'UMDevice'
//可选集成,对应产品中稳定性模块(错误捕获),该功能已经独立成为新的应用性能监控产品U-APM
pod 'UMAPM'8.手动集成,如果需要稳定性模块(错误捕获),则需引入UMAPM.framework.
9.基础组件库从7.2.6及以上版本开始,从UMCommon.framework文件中独立了Deeplink能力和ABTest能力,可以按需集成。其中Deeplink能力需要下载智能超链SDK获取UMLink.framwork文件。
【历史升级说明】
7.2.5版本升级说明
从组件化版本7.2.0-7.2.4升级到7.2.5版本说明
统计SDK升级步骤
1.基础组件库 7.2.X版本仅支持如下表格中特定版本业务SDK
应用性能监控SDK | 推送SDK | 分享SDK | 游戏统计SDK | 智能登录SDK |
v1.1.0 | v3.3.0 | v6.10.0 | v7.2.0+G | v1.4.0 |
2.自动集成升级,由原来的pod 'UMCCommon'变为
pod 'UMCommon'//由原来的UMCCommon变为UMCommon
pod 'UMDevice'
//可选集成,对应产品中稳定性模块(错误捕获),该功能已经独立成为新的应用性能监控产品U-APM
pod 'UMAPM'3.手动集成,如果不需要稳定性模块(错误捕获),可以删除原来导入的UMCrash.framework;如果还需要稳定性模块(错误捕获),则需引入UMAPM.framework.
新版本SDK变化
1.删除UMCrash.framework,如果还需要稳定性模块(错误捕获),则需引入UMAPM.framework.
从组件化版本7.0.0-7.2.0升级到7.2.5版本说明
统计SDK升级步骤
1.基础组件库 7.2.X版本仅支持如下表格中特定版本业务SDK
应用性能监控SDK | 推送SDK | 分享SDK | 游戏统计SDK | 智能登录SDK |
v1.1.0 | v3.3.0 | v6.10.0 | v7.2.0+G | v1.4.0 |
2.工程中需引入 UMDevice.framework
3.自动集成升级,由原来的pod 'UMCCommon'变为
pod 'UMCommon'//由原来的UMCCommon变为UMCommon
pod 'UMDevice'
//可选集成,对应产品中稳定性模块(错误捕获),该功能已经独立成为新的应用性能监控产品U-APM
pod 'UMAPM'3.手动集成,如果需要稳定性模块(错误捕获),则需引入UMAPM.framework.
新版本SDK变化
1.增加UMDevice.framework2.Crash捕获能力删除,如果还需要稳定性模块(错误捕获),则需引入UMAPM.framework.
从组件化版本5.0.0以上7.0.0以下版本升级到7.2.5版本说明
统计SDK升级步骤
1.删除工程中的UMAnalytics.framework,引入UMCommon 7.2.X版本SDK到工程中,覆盖老版本2.引入统计头文件修改,将以前
#import <UMAnalytics/MobClick.h>全部修改为
#import <UMCommon/MobClick.h>3.去掉场景设置接口,将工程中已设置的场景删除掉
+(void)setScenarioType:(eScenarioType)eSType;4.去掉错误统计设置接口
+(void)setCrashReportEnabled:(BOOL)value;5.Targets->BuildSettings 中 , Other Linker Flags增加-ObjC,一定要添加此项,注意是大写C,不是小写c。6.基础组件库 7.2.X版本仅支持如下表格中特定版本业务SDK
应用性能监控SDK | 推送SDK | 分享SDK | 游戏统计SDK | 智能登录SDK |
v1.1.0 | v3.3.0 | v6.10.0 | v7.2.0+G | v1.4.0 |
7.工程中需引入 UMDevice.framework
8.自动集成升级,由原来变为
pod 'UMCommon'//由原来的UMCCommon变为UMCommon
pod 'UMDevice'
//可选集成,对应产品中稳定性模块(错误捕获),该功能已经独立成为新的应用性能监控产品U-APM
pod 'UMAPM'9.手动集成,如果需要稳定性模块(错误捕获),则需引入UMAPM.framework.
7.2.X版本升级说明
从组件化版本7.0.0以上升级到7.2.X版本升级说明
统计SDK升级步骤
1.基础组件库 7.2.X版本仅支持如下表格中特定版本业务SDK
推送SDK | 分享SDK | 游戏统计SDK | 智能登录SDK |
v3.3.0 | v6.10.0 | v7.2.0+G | v1.4.0 |
2.工程中需引入 UMDevice.framework3.工程中需引入 UMCrash.framework
新版本SDK变化
1.增加UMDevice.framework2.增加UMCrash.framework
从组件化版本5.0.0以上7.0.0以下版本升级到7.2.x版本升级说明
统计SDK升级步骤
1.删除工程中的UMAnalytics.framework,引入UMCommon 7.2.X版本SDK到工程中,覆盖老版本2.引入统计头文件修改,将以前
#import <UMAnalytics/MobClick.h>全部修改为
#import <UMCommon/MobClick.h>3.去掉场景设置接口,将工程中已设置的场景删除掉
+(void)setScenarioType:(eScenarioType)eSType;4.去掉错误统计设置接口
+(void)setCrashReportEnabled:(BOOL)value;5.Targets->BuildSettings 中 , Other Linker Flags增加-ObjC,一定要添加此项,注意是大写C,不是小写c。6.基础组件库 7.2.X版本仅支持如下表格中特定版本业务SDK
推送SDK | 分享SDK | 游戏统计SDK | 智能登录SDK |
v3.3.0 | v6.10.0 | v7.2.0+G | v1.4.0 |
7.工程中需引入 UMDevice.framework8.工程中需引入 UMCrash.framework9.增加系统库 libc++.tbd
新版本SDK变化
1.UMAnalytics.framework和UMCommon.framework合并为一个包:UMCommon.framework2.去掉原UMAnalytics.framework中设置场景接口,如使用游戏统计,只要引入游戏UMAnalyticsGame.framewor SDK默认使用游戏场景3.在UMConfigure类中增加是否使用统计功能接口,默认开启状态,如需关闭,要在初始化之前调用
/** 是否开启统计,默认为YES(开启状态)
@param value 设置为NO,可关闭友盟统计功能.
*/
+(void)setAnalyticsEnabled:(BOOL)value;4.删除场景设置接口
+(void)setScenarioType:(eScenarioType)eSType;5.删除错误统计设置接口
+(void)setCrashReportEnabled:(BOOL)value;6.增加UMDevice.framework7.增加UMCrash.framework8.增加系统库 libc++.tbd
7.0.0以上7.2.0以下版本升级说明
从组件化版本5.0.0以上升级到最新版7.0.0以上版本升级说明
统计SDK升级步骤
1.删除工程中的UMAnalytics.framework,引入新版本UMCommon 7.0.0或以上版本SDK到工程中,覆盖老版本
2.引入统计头文件修改,将以前
#import <UMAnalytics/MobClick.h>全部修改为
#import <UMCommon/MobClick.h>3.去掉场景设置接口,将工程中已设置的场景删除掉
+(void)setScenarioType:(eScenarioType)eSType;新版本SDK变化
1.UMAnalytics.framework和UMCommon.framework合并为一个包:UMCommon.framework
2.去掉原UMAnalytics.framework中设置场景接口,如使用游戏统计,只要引入游戏UMAnalyticsGame.framewor SDK默认使用游戏场景
3.在UMConfigure类中增加是否使用统计功能接口,默认开启状态,如需关闭,要在初始化之前调用
/** 是否开启统计,默认为YES(开启状态)
@param value 设置为NO,可关闭友盟统计功能.
*/
+(void)setAnalyticsEnabled:(BOOL)value;4.删除场景设置接口
+(void)setScenarioType:(eScenarioType)eSType;5.增加游戏统计 UMAnalyticsGame.framework SDK
添加此SDK需配置Targets->BuildSettings 中 , Other Linker Flags增加-ObjC,一定要添加此项,注意是大写C,不是小写c。
5.0以上版本升级说明
升级到组件化版本SDK5.0以上特别说明
老版本升级到新版本后组件化SDK的升级后,会多一个库UMCommon.framework,此库为UMeng所有业务库必须依赖的基础功能库,为每个业务模块提供初始化功能,数据传输等功能,把老版的每个业务的初始化APPKey的函数统一到UMCommon.framework库中,用户只需要调用UMCommon的初始化接口即可初始化对应APPKey。
新增接口
/** 初始化友盟所有组件产品
@param appKey 开发者在友盟官网申请的appkey.
@param channel 渠道标识,可设置nil表示"App Store".
*/
+(void)initWithAppkey:(NSString*)appKey channel:(NSString*)channel;
/** 设置是否在console输出sdk的log信息.
@param bFlag 默认NO(不输出log); 设置为YES, 输出可供调试参考的log信息. 发布产品时必须设置为NO.
*/
+(void)setLogEnabled:(BOOL)bFlag;
/** 设置是否对日志信息进行加密, 默认NO(不加密).
@param value 设置为YES, umeng SDK 会将日志信息做加密处理
@return void.
*/
+(void)setEncryptEnabled:(BOOL)value;
/** 获得umid
*/
+(NSString*)umidString;
/**
集成测试需要device_id
*/
+(NSString*)deviceIDForIntegration;统计 SDK
主要以 4.2.4s 版本升级到组件化版本(5.0以上)的接口变化
新增接口
+(void)onDeepLinkReceived:(NSURL *)link;
//仅5.4.1版本新增DeepLink功能
+(void)setScenarioType:(eScenarioType)eSType;//设置场景删除接口
+(void)setAppVersion:(NSString*)appVersion;
//设置版本
+(void)setEncryptEnabled:(BOOL)value;
//设置加密
//此接口已经在转移到UMCommon.framework组件里面,请查看UMConfigure.h头文件
+(void)setLogSendInterval:(double)second;
//设置间隔发送时间
+(void)startSession:(NSNotification*)notification;
//模块启动初始化变动
原 4.2.4 初始化形式为:
UMConfigInstance.appKey =@"appkey";
UMConfigInstance.channelId=@"App Store";
UMConfigInstance.eSType=E_UM_NORMAL;
UMConfigInstance.ePolicy=SEND_INTERVAL;
[MobClick startWithConfigure:UMConfigInstance];升级到组件化更新为:
[UMConfigure initWithAppkey:@"appkey" channel:@"App Store"];
// 以及接口
+(void)setScenarioType:(eScenarioType)eSType;//设置场景注:组件化已没有代码设置发送策略(间隔发送) UMConfigInstance.ePolicy=SEND_INTERVAL;
更改到核心库UMCommon中
+(void)setLogEnabled:(BOOL)value;
//打印log