云日志服务iOS SDK
云日志服务iOS SDK提供了Objective-C & Swift语言上报日志的一系列方法,如果您需要收集和分析用户在网站上的信息,例如用户的浏览器、浏览行为记录、购买行为记录、终端设备记录,设备异常记录,网络使用记录等,可以直接使用iOS SDK上报日志到LTS。
当前仅支持华北-北京四、华东-上海一、华南-广州的白名单用户,如有需要请提工单申请。
传输协议
HTTPS
使用前提
- 参考注册华为账号并开通华为云中操作,完成注册。
版本更新说明
SDK如何处理个人信息请参考华为云日志服务移动端日志采集SDK隐私声明。
您集成和使用我们的SDK时需要遵从个人信息保护基本要求,详情请参考华为云日志服务移动端日志采集SDK开发者合规指南。
版本号 |
下载地址 |
检验信息下载地址 |
更新说明 |
系统 |
---|---|---|---|---|
1.0.27 |
单击下载 |
单击下载 |
优化性能。 |
iOS10、Xcode11及以上。 |
1.0.26 |
单击下载 |
单击下载 |
优化性能。 |
iOS10、Xcode11及以上。 |
1.0.24 |
单击下载 |
单击下载 |
|
iOS10、Xcode11及以上。 |
1.0.21 |
单击下载 |
单击下载 |
|
iOS10、Xcode11及以上。 |
1.0.19 |
单击下载 |
单击下载 |
|
iOS10、Xcode11及以上。 |
1.0.18 |
单击下载 |
单击下载 |
|
iOS10、Xcode11及以上。 |
1.0.15 |
单击下载 |
单击下载 |
首次发布,提供四个接口:初始化 initWithConfig、配置 config、上报日志 report、立即上报日志 reportImmediately。 |
iOS10、Xcode11及以上。 |
安装iOS SDK
- 集成接入SDK。
方法1:通过CocoaPods集成。
- 在Podfile中添加CocoaPods官方仓库。
source 'https://github.com/CocoaPods/Specs.git'
- 在Podfile中添加依赖。
pod 'LTSSDK' , '1.0.27'
- 在终端执行。
pod install --repo-update
方法2:手动集成。- 下载SDK,解压到指定目录。注:直接解压即可,不需要额外操作。
- 将解压后的xcframework静态库添加到您的项目工程中。
待导入的xcframework静态库必须和工作空间在相同的磁盘空间里,如果不在,您可以选择注意勾选“Copy items if needed”和“Create groups”,将待导入的xcframework库工程文件复制到工作空间。
- 在Podfile中添加CocoaPods官方仓库。
- 初始化,详细参数请参考表4。
- Objective-C:初始化代码示例。
// LTS参数配置 LTSConfigParams *params = [[LTSConfigParams alloc] init]; // 必填参数 params.region = @"云日志服务的区域"; params.projectId = @"华为云账号的项目ID"; params.groupId = @"LTS的日志组ID"; params.streamId = @"LTS的日志流ID"; // 注意:认证用的华为云账号AK、SK硬编码到代码中或者明文存储都有很大的安全风险,建议密文存放,使用时解密,确保安全。 params.accessKey = @"华为云访问密钥"; params.secretKey = @"华为云秘密访问密钥"; // 选填参数 // params.url = @"https://lts-access.cn-north-4.myhuaweicloud.com"; //要上报的LTS公网地址域名 // params.cacheThreshold = 200; // params.timeInterval = 3; // params.reportWhenEnterBackgroundEnabled = YES; // params.reportWhenAPPLaunchEnabled = NO; // LTS初始化方法 LTSSDK *lts = [[LTSSDK alloc] initWithConfig:params];
- Swift:初始化代码示例。
// LTS参数配置 let params = LTSConfigParams() // 必填参数 params.region = "云日志服务的区域" params.projectId = "华为云账号的项目ID" params.groupId = "LTS的日志组ID" params.streamId = "LTS的日志流ID" // 注意:认证用的华为云账号AK、SK硬编码到代码中或者明文存储都有很大的安全风险,建议密文存放,使用时解密,确保安全。 params.accessKey = "华为云访问密钥" params.secretKey = "华为云秘密访问密钥" // 选填参数 // params.url = "https://lts-access.cn-north-4.myhuaweicloud.com" //要上报的LTS公网地址域名 // params.cacheThreshold = 200 // params.timeInterval = 3 // params.reportWhenEnterBackgroundEnabled = true // params.reportWhenAPPLaunchEnabled = false // LTS初始化方法 let lts = LTSSDK(config:params)
LTSSDK支持多实例日志上报机制,根据不同配置创建实例进行上报。
- Objective-C:初始化代码示例。
- 上报日志。
LTS提供两种上报日志的方法。
表2 两种上报日志的方法 Method
Description
- (BOOL)report:(id)content labels:(nullable NSDictionary<NSString *, id> *)labels;
上报日志:先存入本地数据库,根据配置中设定的策略实施上报。
- (BOOL)reportImmediately:(id)content labels:(nullable NSDictionary<NSString *, id> *)labels;
立即上报日志。
表3 Parameters参数 Name
Description
content
日志内容。支持字典或字典数组;最外层键值对最多300个;字典转JSON字符串最大支持长度为30720,超出部分将被截断再上报。
labels
日志标签。支持字典或空值;最外层键值对最多50个;最外层key最大长度为64,支持字母、数字和下划线组合,首字符须是字母;字典转JSON字符串最大支持长度为30720,超出则该条日志无法上报。
- Objective-C代码示例如下:
//单个上报 [lts report:@{@"content_key": @"content_value"} labels:@{@"label_key": @"label_value"}]; [lts reportImmediately:@{@"content_key": @"content_value"} labels:@{@"label_key": @"label_value"}]; //批量上报 [lts report:@[@{@"content1_key": @"content1_value"}, @{@"content2_key": @"content2_value"}] labels:@{@"label_key": @"label_value"}]; [lts reportImmediately:@[@{@"content1_key": @"content1_value"}, @{@"content2_key": @"content2_value"}] labels:@{@"label_key": @"label_value"}];
- Swift代码示例如下:
//单个上报 lts.report(["content_key": "content_value"], labels: ["label_key": "label_value"]) lts.reportImmediately(["content_key": "content_value"], labels: ["label_key": "label_value"]) //批量上报 lts.report([["content1_key": "content1_value"], ["content2_key": "content2_value"]], labels: ["label_key": "label_value"]) lts.reportImmediately([["content1_key": "content1_value"], ["content2_key": "content2_value"]], labels: ["label_key": "label_value"])
- Objective-C代码示例如下:
配置参数说明
参数名称 |
类型 |
是否必填 |
默认值 |
描述 |
---|---|---|---|---|
projectId |
NSString |
必填 |
- |
华为云账号的项目ID。 |
accessKey |
NSString |
必填 |
- |
华为云账号的访问密钥,简称AK。注意:硬编码到代码中或者明文存储都有很大的安全风险,建议密文存放,使用时解密,确保安全。 |
secretKey |
NSString |
必填 |
- |
华为云账号的秘密访问密钥,简称SK。注意:硬编码到代码中或者明文存储都有很大的安全风险,建议密文存放,使用时解密,确保安全。 |
region |
NSString |
必填 |
- |
LTS的服务区域。 |
groupId |
NSString |
必填 |
- |
LTS的日志组ID。 |
streamId |
NSString |
必填 |
- |
LTS的日志流ID。 |
url |
NSString |
选填 |
nil |
用于上报的公网地址域名,支持带端口号,比如:https://lts-access.cn-north-4.myhuaweicloud.com:443;如未设置url,将根据region自动生成链接,格式如下:https://lts-access.{region}.myhuaweicloud.com |
cacheThreshold |
NSUInteger |
选填 |
200条 |
当本地数据库日志存储条数达到该值会触发上报,取值范围为30-1000条。 |
timeInterval |
NSUInteger |
选填 |
3秒 |
定时器每隔该值会触发上报,取值范围为1-1800秒。 |
reportWhenEnterBackgroundEnabled |
BOOL |
选填 |
YES |
是否开启APP切后台上报功能。 |
reportWhenAPPLaunchEnabled |
BOOL |
选填 |
NO |
是否开启APP启动时上报功能。如需开启,请在UIApplicationDidFinishLaunchingNotification通知发送前完成配置。 |
上报日志策略说明
LTSSDK支持四种日志上报策略:阈值上报、定时上报、应用切后台和启动时上报,根据场景选择合适的值配置cacheThreshold、timeInterval、reportWhenEnterBackgroundEnabled、reportWhenAPPLaunchEnabled等参数。
开启调试
在开发过程中可以启用调试模式,借助控制台日志实时查看上报日志的记录情况,观察具体结果并根据需要进行调整。在初始化LTSSDK之前,调用类方法+(void)setLogLevel:(LTSLoggerLevel)logLevel设置调试级别:Debug、Info、Warn、Error、Off。
Objective-C语言示例代码:
#ifdef DEBUG [LTSSDK setLogLevel:LTSLoggerLevelDebug]; #endif
Swift语言示例代码:
#if DEBUG LTSSDK.setLogLevel(.debug) #endif
参数获取方式
- 区域表
表5 区域表 区域名称
RegionName
华北-北京四
cn-north-4
华东-上海一
cn-east-3
华南-广州
cn-south-1
- 日志组ID:登录云日志服务页面,选择“日志管理”,鼠标悬浮在日志组名称上,可查看日志组名称和日志组ID。
- 日志流ID:单击“日志组名称”可查看日志流列表,鼠标悬浮在日志流名称上,可查看日志流名称和日志流ID。