更新时间:2024-07-26 GMT+08:00
分享

云日志服务iOS SDK

云日志服务iOS SDK提供了Objective-C & Swift语言上报日志的一系列方法,如果您需要收集和分析用户在网站上的信息,例如用户的浏览器、浏览行为记录、购买行为记录、终端设备记录,设备异常记录,网络使用记录等,可以直接使用iOS SDK上报日志到LTS。

当前仅支持华北-北京四、华东-上海一、华南-广州的白名单用户,如有需要请提工单申请。

传输协议

HTTPS

使用前提

  • 确认云日志服务的区域,请您根据所在区域,选择RegionName。
  • 获取华为云账号的项目ID(project id),步骤参考:请参见“我的凭证 > API凭证”。
  • 获取需要上报到LTS的日志组ID日志流ID
  • 日志流需要开启匿名写入功能。详细操作请参考管理日志流

版本更新说明

SDK如何处理个人信息请参考华为云日志服务移动端日志采集SDK隐私声明

您集成和使用我们的SDK时需要遵从个人信息保护基本要求,详情请参考华为云日志服务移动端日志采集SDK开发者合规指南

表1 版本更新说明

版本号

下载地址

检验信息下载地址

更新说明

系统

1.0.27

单击下载

单击下载

优化性能。

iOS10、Xcode11及以上。

1.0.26

单击下载

单击下载

优化性能。

iOS10、Xcode11及以上。

1.0.24

单击下载

单击下载

  • 支持更多region:华东-上海一、华南-广州。
  • 优化内存使用、日志发送等。

iOS10、Xcode11及以上。

1.0.21

单击下载

单击下载

  • 优化初始化函数initWithConfig。
  • 为配置函数config添加废弃声明。

iOS10、Xcode11及以上。

1.0.19

单击下载

单击下载

  • 调整配置项阈值。
  • 修复兼容性问题。

iOS10、Xcode11及以上。

1.0.18

单击下载

单击下载

  • 增加设置调试日志级别接口:setLogLevel。
  • 在控制台输出配置项、上报接口参数、请求发送内容。
  • 上报接口参数labels支持嵌套。
  • 请求发送控制、数据库大小限制等优化。

iOS10、Xcode11及以上。

1.0.15

单击下载

单击下载

首次发布,提供四个接口:初始化 initWithConfig、配置 config、上报日志 report、立即上报日志 reportImmediately。

iOS10、Xcode11及以上。

安装iOS SDK

  1. 集成接入SDK。

    方法1:通过CocoaPods集成。

    1. 在Podfile中添加CocoaPods官方仓库。
      source 'https://github.com/CocoaPods/Specs.git'
    2. 在Podfile中添加依赖。
      pod 'LTSSDK' , '1.0.27'
    3. 在终端执行。
      pod install --repo-update
    方法2:手动集成。
    • 下载SDK,解压到指定目录。注:直接解压即可,不需要额外操作。
    • 将解压后的xcframework静态库添加到您的项目工程中。

      待导入的xcframework静态库必须和工作空间在相同的磁盘空间里,如果不在,您可以选择注意勾选“Copy items if needed”和“Create groups”,将待导入的xcframework库工程文件复制到工作空间。

  2. 初始化,详细参数请参考表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支持多实例日志上报机制,根据不同配置创建实例进行上报。

  3. 上报日志。

    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"])

配置参数说明

表4 初始化参数说明

参数名称

类型

是否必填

默认值

描述

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

相关文档