背景
之前项目中接入了友盟统计SDK,近一年都没有更新,最近要接入友盟分享功能,发现友盟SDK新增一个库UMCommon.framework,此库为所有业务库必须依赖的基础功能库,为每个业务模块提供初始化功能,数据传输等功能,把老版本中的每个业务的初始化APPKey的函数统一到UMCommon.framework库中,用户只需要调用UMCommon的初始化接口即可初始化对应APPKey。
集成准备(申请AppKey)
添加依赖库
在项目设置target
-> 选项卡General
->Linked Frameworks and Libraries
如下:
CoreTelephony.framework 获取运营商标识
libz.tbd 数据压缩
libsqlite.tbd 数据缓存
SystemConfiguration.framework 判断网络状态
SDK导入到项目
- 选择 “移动统计 SDK”,并下载。
- 将 common文件夹中的 UMCommon.framework (这个是基础库,接入友盟统计、推送、分享等SDK时都要添加该库,注意不要重复添加)添加到项目。
- 将 UMAnalytics.framework 导入到项目中。
主要代码
1,初始化(详细文档)
/** 初始化友盟所有组件产品
@param appKey 开发者在友盟官网申请的AppKey.
@param channel 渠道标识,可设置nil表示"App Store".
*/
+ (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel;
#import <UMCommon/UMCommon.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[UMConfigure initWithAppkey:@"Your Appkey" channel:@"App Store"];
}
2,场景设置
组件化统计SDK用户不同业务场景设置(目前支持普通统计场景和游戏场景)
游戏场景需设置,否则调用相对应的统计api无法使用,如需要支持多个场景,则以 | 分隔。
/** 设置 统计场景类型,默认为普通应用统计:E_UM_NORMAL
@param 游戏统计设置为:E_UM_GAME
*/
+ (void)setScenarioType:(eScenarioType)eSType;
[MobClick setScenarioType:E_UM_NORMAL];//支持普通场景
[MobClick setScenarioType:E_UM_GAME];//支持游戏场景
[MobClick setScenarioType: E_UM_NORMAL | E_UM_GAME];//支持普通场景和游戏场景
3,设置日志
设置是否在console(控制台)输出sdk的log信息。(详细文档)
/** 设置是否在console输出SDK的log信息.
@param bFlag 默认NO(不输出log); 设置为YES, 输出可供调试参考的log信息. 发布产品时必须设置为NO.
*/
+ (void)setLogEnabled:(BOOL)bFlag;
#import <UMCommonLog/UMCommonLogHeaders.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//设置打开日志(UMCommon),此处在初始化函数前面是为了打印初始化的日志
[UMConfigure setLogEnabled:YES];
//开发者需要显式的调用此函数,日志系统才能工作
[UMCommonLogManager setUpUMCommonLogManager];
//初始化
[UMConfigure initWithAppkey:@"your appkey" channel:@"App Store"];
}
日志格式如下:
2019-06-25 13:59:51 UMengCommon<2.0.1>(Info):[UMReachability:59]Reachability Flag Status: -R ------- networkStatusForFlags
2019-06-25 13:59:51 UMengCommon<2.0.1>(Debug):[UMConfigure:59]UMCommon版本号:2.0.1。
2019-06-25 13:59:51 UMengCommon<2.0.1>(Info):[UMConfigure:92]正在使用国内Common组件化SDK版本。
2019-06-26 15:57:34 UMengCommon<2.0.1>(Debug):[UMWorkDispatch:210]E_UM_C_NET_IDLE and no data to send.
2019-06-26 15:57:34 UMengCommon<2.0.1>(Debug):[UMWorkDispatch:219]E_UM_C_NET_IDLE and no ready status.
2019-06-26 15:57:34 UMengCommon<2.0.1>(Debug):[UMNetworkWork:230]网络请求成功(Response Applog) {"success": "ok"}
2019-06-26 15:57:34 UMengCommon<2.0.1>(Debug):[UMWorkDispatch:210]E_UM_C_NET_IDLE and no data to send.
- UMengCommon:指组件化SDK(UMCommon.framework)的名字;
- <2.0.1>:指组件化SDK的版本号;
注意:需要引入日志库及相关文件,UMCommonLog.framework、UMCommonLog.bundle。
4,错误收集
说明和用途
手机app适用过程中产生的Crash信息,统计SDK默认是开启Crash收集机制的。
** 开启CrashReport收集, 默认YES(开启状态).
@param value 设置为NO,可关闭友盟CrashReport收集功能.
@return void.
*/
+ (void)setCrashReportEnabled:(BOOL)value;
关闭Crash收集功能 (如何设置错误分析)
[MobClick setCrashReportEnabled:NO];
5,设置加密
说明和用途(详细文档)
设置是否对要发送的统计信息进行加密
/** 设置是否对统计信息进行加密传输, 默认NO(不加密).
@param value 设置为YES, umeng SDK 会将日志信息做加密处理
*/
+ (void)setEncryptEnabled:(BOOL)value;
#import <UMCommon/UMCommon.h>
#import <UMCommonLog/UMCommonLogHeaders.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//打开加密传输
[UMConfigure setEncryptEnabled:YES];
//设置打开日志(UMCommon),此处在初始化函数前面是为了打印初始化的日志
[UMConfigure setLogEnabled:YES];
//开发者需要显式的调用此函数,日志系统才能工作
[UMCommonLogManager setUpUMCommonLogManager];
//初始化
[UMConfigure initWithAppkey:@"your appkey" channel:@"App Store"];
}