接入iOS用户体验监控数据

本文介绍如何接入iOS用户体验监控数据到全栈可观测应用。

前提条件

已创建全栈可观测实例(推荐)或Trace实例。具体操作,请参见创建全栈可观测实例创建Trace实例

重要
  • 全栈可观测实例需为2.1.0及以上版本。您可以在实例列表中查看版本信息。

  • 本文以全栈可观测应用为例,即下文中的实例均为全栈可观测实例。

步骤一:SDK集成

在项目文件夹中,创建Podfile文件,并在Podfile中配置以下内容。

#指定source。
source 'https://gitee.com/aliyun-sls/Specs.git'

# 引入以下Pods。
pod 'AliyunLogProducer', '4.0.0'
pod 'AliyunLogOTelCommon', '4.0.0'
pod 'AliyunLogOtlpExporter', '4.0.0'
pod 'AliyunLogCrashReporter', '4.0.0'

步骤二:初始化SDK

参考如下代码,初始化SDK。

    [ConfigurationManager.shared setProviderWithAccessKeyProvider:^AccessKey * _Nullable(NSString * _Nonnull scope) {
        return [AccessKey initWithAccessKeyId:@"${access-key-id}"
                              accessKeySecret:@"${access-key-secret}"
                        accessKeySecuritToken:@"${access-key-token}"
        ];
    } workspaceProvider:^Workspace * _Nullable(NSString * _Nonnull scope) {
        return [Workspace initWithEndpoint:@"https://${endpoint}"
                                   project:@"${project}"
                                instanceId:@"${instanceId}"
        ];
    } environmentProvider:^Environment * _Nullable(NSString * _Nonnull scope) {
        // 设置环境信息。
        return [Environment initWithEnv:@"default" // 默认为default。一般情况下,建议debug版本设置为dev,release版本设置为pub。
                                    uid:@"123456780" // 设置用户ID,可选。
                                  utdid:@"" // 设置设备ID,可选。传入无效值时,SDK会自动生成utdid。
                                channel:@"" // 设置渠道信息,可选。
               ];
    }];

    // 一般情况下,建议debug版本设置为YES,release版本设置为NO。
    BOOL debuggable = NO;
    [[CrashReporter shared] initWithDebuggable:debuggable];

变量说明

变量

说明

示例

${endpoint}

服务入口是访问一个Project及其内部数据的URL,日志服务提供私网域名和公网域名。更多信息,请参见服务入口

cn-hangzhou.log.aliyuncs.com

${project}

日志服务Project名称,更多信息,请参见管理Project

test-project

${instance}

全栈可观测服务实例ID。更多信息,请参见创建实例

test-traces

${access-key-id}

AccessKey ID用于标识用户,更多信息,请参见访问密钥

建议您遵循最小化原则,按需授予RAM用户必要的权限。关于授权的具体操作,请参见创建RAM用户及授权RAM自定义授权示例

${access-key-secret}

AccessKey Secret是用户用于加密签名字符串和日志服务用来验证签名字符串的密钥,必须保密。

${access-key-token}

AccessKey Token,仅当AccessKey是通过STS方式获取时才需要。