跳到主要内容

iOS

最近更新 2026/10/02

最新版本:v1.0.2

更新时间:2026-07-24

资源下载:下载

1. 概述​

从 6.1 版本开始,AE 新增实验套件功能,支持在 AE 后台创建实验,设置对照组和实验组的变量值,通过客户端 SDK 拉取至 App,为不同组别的用户展示不同的内容。

本文介绍客户端 SDK 的集成过程,App 端只需要关注与数数 SDK 的交互即可,不需要关心 AE 后台的任务细节。

需要注意的是,实验 SDK 必须搭配配置中心 SDK 一起使用。

2. 集成​

2.1 CocoaPods 自动集成​

  1. 在工程的 Podfile 中添加依赖:
platform :ios, '9.0'
use_frameworks!

target 'YourApp' do
pod 'TDExperiment', '1.0.2'
end
  1. 执行安装命令:
pod install

安装完成后,使用 .xcworkspace 打开工程。

2.2 手动集成 SDK​

实验 SDK 需要依赖以下数数 SDK:

SDK 名称功能介绍版本要求
ThinkingSDK实现数据采集与处理>= 3.1.6
TDRemoteConfig拉取 AE 后台的配置信息>= 1.3.1
  1. 点击页面上方资源下载链接,下载 SDK 并解压
  2. 将 ThinkingSDK.xcframework、ThinkingDataCore.xcframework、TDRemoteConfig.xcframework、TDExperiment.xcframework 拖入工程,并勾选 Embed & Sign(或按工程静态库策略配置)
  3. 在 Build Settings 中确认 Framework Search Paths 已包含上述 xcframework 路径

3. 初始化​

实验 SDK 需要搭配分析 SDK 使用。请先完成 TDAnalytics 初始化,再初始化实验 SDK。

#import <ThinkingSDK/ThinkingSDK.h>
#import <TDExperiment/TDExperiment.h>

// 初始化采集 SDK
[TDAnalytics startAnalyticsWithAppId:@"APP_ID" serverUrl:@"https://YOUR_SERVER_URL"];

// 初始化实验 SDK
TDExperimentConfig *config = [[TDExperimentConfig alloc] initWithAppId:@"APP_ID"
serverUrl:@"https://YOUR_SERVER_URL"];
config.automaticExposureTracking = YES;
config.customBucketId = @{ @"bucket_id": @"account_id" };
config.customFetchParams = @{ @"key": @"value" };

TDExperimentTask *startupTask = [[TDExperimentTask alloc] init];
[startupTask addOnSuccessListener:^{
// 拉取实验配置信息成功
}];
[startupTask addOnFailureListener:^(NSInteger code, NSString *message) {
// 拉取实验配置信息失败
}];
config.startupTask = startupTask;

[TDExperiment enableLog:YES];
[TDExperiment startWithConfig:config];

也可使用简化启动方式:

[TDExperiment startWithAppId:@"APP_ID" serverUrl:@"https://YOUR_SERVER_URL"];

初始化参数说明:

  • appId:APP ID
  • serverUrl:数据上报地址
  • automaticExposureTracking:默认设置为 YES,在 get 获取实验参数的时候自动上传曝光事件
  • customBucketId:自定义分流主体
  • customFetchParams:客户端配置通道上的自定义参数
  • startupTask:启动时首次拉取实验配置的回调任务(通过 addOnSuccessListener / addOnFailureListener 注册)
  • enableLog:是否开启调试日志(通过 TDExperiment.enableLog 设置)

4. 使用​

4.1 获取实验信息​

[TDExperiment getValueAsString:key];
[TDExperiment getValueAsString:key defaultValue:@"default"];

[TDExperiment getValueAsNumber:key];
[TDExperiment getValueAsNumber:key defaultValue:@0];

[TDExperiment getValueAsBoolean:key];
[TDExperiment getValueAsBoolean:key defaultValue:NO];

[TDExperiment getValueAsJson:key];
[TDExperiment getValueAsJson:key defaultValue:@{}];

如果 automaticExposureTracking 为 YES,在 get 的时候会自动上传曝光事件。

4.2 上传曝光事件​

可以调用 exposure 方法,手动上传曝光事件。

[TDExperiment exposure:key];

4.3 主动拉取所有实验信息​

[TDExperiment fetch];

[[[TDExperiment fetch]
addOnSuccessListener:^{
// 成功
}]
addOnFailureListener:^(NSInteger code, NSString *message) {
// 失败
}];

4.4 自定义分流主体​

NSDictionary<NSString *, NSString *> *bucketId = @{ @"bucket_id": @"account_id" };
[TDExperiment setCustomBucketId:bucketId];

4.5 自定义请求参数​

NSDictionary<NSString *, NSObject *> *params = @{ @"key": @"value" };
[TDExperiment setCustomFetchParams:params];
这篇文档对你有帮助吗?