接入Unity应用

更新时间:
复制为 MD 格式

概述

阿里云 RUM Unity SDK 是一款用于 Unity 游戏的实时用户监控(Real User Monitoring)SDK。通过集成该 SDK,您可以实现:

  • 异常监控:自动捕获 Unity 异常和崩溃。

  • 结构化日志采集:按 LogType 粒度控制日志采集。

  • 网络请求监控:对 UnityWebRequest 进行自动埋点。

  • 分布式链路追踪:支持 W3C 与 SkyWalking 协议。

  • 自定义事件上报:上报业务自定义事件。

环境要求

维度

要求

Unity 版本

≥ 2021.3

Android 最低版本

API Level 21+

iOS 最低版本

iOS 12.0

Android 构建方式

Gradle

iOS 依赖管理

CocoaPods

安装方式

通过 .unitypackage 安装(推荐)

  1. 下载 SDK 包

    从发布页面下载最新的 [alibabacloud-rum-unity-sdk.unitypackage](https://rum-sdk.oss-cn-hangzhou.aliyuncs.com/unity3d/alibabacloud-rum-unity-sdk.unitypackage) 文件。

  2. 导入 Unity 项目

    • 打开您的 Unity 项目。

    • 在菜单栏选择 Assets -> Import Package -> Custom Package...

    • 选择下载的 .unitypackage 文件。

    • 在弹出的导入对话框中,点击 Import 确认导入。

  3. 导入后的目录结构

    Assets/
    ├── Runtime/           # SDK 运行时核心代码
    │   ├── Android/       # Android 平台适配
    │   ├── iOS/           # iOS 平台适配
    │   ├── Rum/           # RUM 核心实现
    │   ├── Worker/        # 后台工作线程
    │   └── ...
    └── Editor/            # SDK Editor 配置工具

配置步骤

1. 打开配置窗口

在 Unity 菜单栏选择 Tools -> Alibabacloud,打开 SDK 配置窗口。

2. 核心配置(Core Tab)

在 Core 页签中配置以下必填项:

配置项

说明

必填

Endpoint

RUM 上报服务的 URL,可在 ARMS 控制台获取

SERVICE ID

服务 ID,用于标识您的应用

WORKSPACE

工作空间 ID

Enable Native SDK Debuggable

是否开启原生 SDK 调试日志

自动场景追踪

配置项

说明

Automatic Scene Tracking

开启后,场景切换会自动作为 RUM View 上报

调试配置

配置项

说明

Enable Debug Output

是否输出 SDK 诊断日志

Verbosity Level

日志级别(Debug/Info/Warning/Error)

3. 日志配置(Logging Tab)

配置项

说明

默认值

Enable Structured Logging

是否开启结构化日志采集

false

Structured Log On DebugLog

是否采集 Debug.Log

false

Structured Log On DebugLogWarning

是否采集 Debug.LogWarning

true

Structured Log On DebugLogAssertion

是否采集 Debug.LogAssertion

true

Structured Log On DebugLogError

是否采集 Debug.LogError

true

Structured Log On DebugLogException

是否采集 Debug.LogException

true

4. 网络配置(Network Tab)

配置项

说明

默认值

Enable Network Tracking

是否开启网络请求追踪

true

Network Sample Rate

采样率(0.0-1.0)

1.0

Network Url Allowlist

URL 白名单(为空则允许所有)

Network Url Blocklist

URL 黑名单

Capture Request Body Size

是否采集请求体大小

true

Capture Response Body Size

是否采集响应体大小

true

Capture Request Headers

是否采集请求头

false

Capture Response Headers

是否采集响应头

false

分布式链路追踪

SDK 支持分布式链路追踪,可在 HTTP 请求中注入追踪上下文头。

TraceContextStandard 枚举

定义于 Runtime/Network/TraceContextStandard.cs

说明

W3C

W3C Trace Context 标准,使用 traceparent

SkyWalking

Apache SkyWalking 标准,使用 sw8

TraceContextConfig 类

配置 URL 模式与追踪标准的映射。

[Serializable]
public class TraceContextConfig
{
    public string UrlPattern { get; set; }  // URL 匹配模式
    public TraceContextStandard Standard { get; set; }  // 追踪标准
}

配置方式

在 Unity Editor 的 Network Tab 中配置:

  1. 勾选 Enable Trace Context

  2. 添加 Trace Context Configs 条目。

  3. 设置 Url Pattern(如 api.example.com)。

  4. 选择 Standard(W3C 或 SkyWalking)。

HTTP 方法过滤

可单独配置是否追踪以下 HTTP 方法:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS。

分布式链路追踪

配置项

说明

Enable Trace Context

是否开启分布式链路追踪

Trace Context Configs

按 URL 模式配置追踪标准(W3C/SkyWalking)

平台特定配置

Android 平台

1. 安装 EDM4U

SDK 依赖 External Dependency Manager for Unity (EDM4U) 来管理原生依赖。如果尚未安装,请从 EDM4U 发布页面 下载并导入。

2. 解析依赖

导入 SDK 后,EDM4U 会自动解析 Editor/AlibabacloudDependencies.xml 中定义的原生依赖:

<androidPackage spec="com.aliyun.rum:alibabacloud-android-rum-sdk:*.*.*">
  <repositories>
    <repository>https://repo1.maven.org/maven2</repository>
  </repositories>
</androidPackage>

如果自动解析未触发,请执行:

  • Assets -> External Dependency Manager -> Android Resolver -> Resolve

3. ProGuard 配置

SDK 已包含 ProGuard 规则,无需额外配置。如需手动添加,规则位于 Runtime/Android/proguard-unity.txt

iOS 平台

1. 安装 CocoaPods

确保系统已安装 CocoaPods:

sudo gem install cocoapods

2. 解析依赖

EDM4U 会自动生成 Podfile 并添加依赖:

pod 'AlibabaCloudRUM', '*.*.*'

执行解析:

  • Assets -> External Dependency Manager -> iOS Resolver -> Settings -> 确认 Cocoapods Integration 已启用。

3. 构建后操作

构建 iOS 项目后,必须使用 .xcworkspace 文件打开 Xcode 工程,而非 .xcodeproj

cd Your-Builds/iOS-Paths(或 Podfile 文件所在目录)
pod install
open Your-Unity-App.xcworkspace

4. Xcode 配置

确保 AlibabaCloudRUMSDK.xcframework 已正确链接到 UnityFramework,并设置为 Embed & Sign

配置文件说明

SDK 配置保存在 ScriptableObject 中,路径为:

Assets/Resources/Alibabacloud/AlibabacloudOptions.asset

配置文件会在运行时通过 Resources.Load<AlibabacloudOptions>() 自动加载。

接入验证

运行后,控制台出现以下日志即表示 SDK 初始化成功:

Android

[AlibabaCloudRum] rum init success

iOS

[AlibabaCloudRUM] [INFO   ] [RUM] <start> AlibabaCloud RUM init success

常见问题

Android 构建失败,提示找不到 RUM SDK 类

A: 确保 EDM4U 已正确解析依赖。检查 Assets/Plugins/Android 目录下是否生成了相关 Gradle 配置文件。

iOS 构建后崩溃

A: 确保使用 .xcworkspace 打开 Xcode 工程,并检查 AlibabaCloudRUMSDK.xcframework 是否正确链接。