跳到主要内容

iOS

最近更新 2026/10/03
提示

iOS SDK 要求最低系统版本为 iOS 9.0

最新版本:v1.3.1

更新时间:2026-07-24

资源下载:下载

Beta版本:无

1. 概述​

从 AE 4.4 版本开始,运营模块上线了“配置中心”功能,支持在 AE 后台添加功能参数配置,通过客户端 SDK 拉取至App,精细化定制您与玩家的互动内容。

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

2. SDK 集成​

2.1 自动集成 SDK​

  1. 确保你的电脑安装了 CocoaPods 包管理工具

  2. 如果你的项目中没有 Podfile 文件,那么需要在项目工程文件(.xcodeproj)同目录下命令行执行命令:

    pod init
  3. 编辑 Podfile 的内容如下:

    platform :ios, '9.0'
    target 'YourProjectTarget' do
    pod 'TDRemoteConfig'
    end
  4. 在项目的根目录,执行安装命令

    pod install

    成功以后,终端会出现如下提示:

    Analyzing dependencies
    Downloading dependencies
    Installing TDRemoteConfig (x.x.x)
    Installing ThinkingDataCore (x.x.x)
    Installing ThinkingSDK (x.x.x)
    Generating Pods project
    Integrating client project
    Pod installation complete! There is 1 dependency from the Podfile and 3 total pods installed.
  5. 导入成功,启动工程

命令执行成功后,会生成 .xcworkspace 文件,说明您已成功导入 iOS SDK。打开 .xcworkspace 文件以启动工程(注意:此时不能同时开启 .xcodeproj 文件)

2.2 手动集成 SDK​

配置中心需要依赖以下数数 SDK:

SDK名称介绍版本要求
ThinkingSDK实现数据采集与处理>= 3.1.0
TDRemoteConfig拉取 AE 后台的配置信息>= 1.0.0
ThinkingDataCore提供基础组件能力>= 1.1.0
  1. 点击页面上方资源下载链接,下载SDK并解压
  2. 将ThinkingSDK.xcframework、ThinkingDataCore.xcframework 、 TDRemoteConfig.xcframework拖入 XCode Project Workspace 工程项目中
  3. 找到 Targets,在 Build Settings 菜单的Other linker flags选项添加-ObjC

3. 初始化​

在主线程初始化 SDK

#import <ThinkingDataCore/ThinkingDataCore.h>

// SDK needs to be initialized on the main thread
// TDSettings 配置的详细使用方式请查看【进阶指南】
TDSettings *settings = [[TDSettings alloc] init];
settings.mode = TDSDKModeNomal;
settings.appId = @"APPID";
settings.serverUrl = @"SERVER_URL";
[TDApp startWithSetting:settings];

4. 使用​

4.1 数据结构样例​

"configId" : {
"templateId" : [
{
"#strategy_id" : "f712dff93afb1e79caefdf094bda4ba2",
"paramater_x" : "1111",
"#ops_receipt_properties" : {}
}
],
"#custom_params" : {

}
}

其中:

configId:在运营后台配置中心模块创建的“配置项ID”,用于标识业务模块信息。配置项说明详见配置项管理

templateId:业务在“配置项”下添加的“模版ID”,用于标识具体的功能模块信息。配置模板说明详见配置模板管理

#strategy_id:策略的唯一ID,用于策略生命周期管理。配置策略说明见配置策略管理

paramater_x:配置模板参数,对应功能模块所需的配置参数

#ops_receipt_properties:用于事件回收统计,当你需要自动统计策略效果(暂未支持)时,回收事件需要携带此属性

#custom_params:客户端配置通道上的自定义参数,可定义需要携带到客户端的用户属性信息。

4.2 设置本地默认值​

您可以在 TDRemoteConfig SDK 中设置配置项默认值,在 AE 服务端未添加配置项、或者本地未拉取到远端值时,SDK 会获取到本地默认值。

格式​

本地默认值的结构需要保持以下格式:

{
"configId": {
"templateId": [
{
"paramater_x" : ""
}
]
}
}

直接设置​

NSDictionary *params = @{
@"configId": @{
@"templateId": @[
@{@"paramater_x" : @""}
]
}
};
[TDRemoteConfig setDefaultValues:params];

从本地文件设置​

NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:nil];
[TDRemoteConfig setDefaultValuesWithJsonFile:filePath];

清空默认值​

[TDRemoteConfig clearDefaultValues];

4.3 获取值​

获取配置项下某一类已经发布上线中的策略内容:

#import <TDRemoteConfig/TDRemoteConfig.h>

TDObject *obj = [TDRemoteConfig getData];
NSArray *arr = obj.get(@"configId").get(@"templateId").arrayValue;

其中:

configId:在运营后台配置中心模块创建的“配置项ID”,用于标识业务模块信息。配置项说明详见配置项管理

templateId:业务在“配置项”下添加的“模版ID”,用于标识具体的功能模块信息。配置模板说明详见配置模板管理

取值规则​

某一个key 的取值过程:

  • 优先取该 key 对应的远端配置的值
  • 若远端没有配置该 key,则去查找该 key 的本地默认值
  • 若本地默认值也没有该 key,返回空。

4.4 监听更新​

SDK 初始化之前,添加对配置拉取成功的通知监听

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(test:) name:kTDRemoteConfigFetchDataSuccess object:nil];

通知名称​

kTDRemoteConfigFetchDataSuccess:拉取配置成功

通知携带的参数​

提示

通知将默认携带本次请求和上次请求期间,变更为暂停生效(suspend)、强制下线(force_offline)的策略状态,您可结合业务需求取用。若无需使用,可直接忽略。

使用以下方式获取通知参数

NSDictionary *info = notification.userInfo[kTDRemoteConfigStrategyStatusMap];

kTDRemoteConfigStrategyStatusMap 对应的 value 结构如下,用来描述配置项模版中策略id为 20241209 的策略状态 。

{
"configId" : {
"templateId" : {
"20241209" : "suspend"
}
}
}

5. 发送测试​

为了快速的验证接入的可用性,与配置策略的有效性,SDK 支持开启debug模式进行发送测试。

TDSettings *settings = [[TDSettings alloc] init];

// debug
settings.mode = TDSDKModeDebug;
settings.enableLog = YES;

settings.appId = @"APPID";
settings.serverUrl = @"SERVER_URL";
[TDApp startWithSetting:settings];

客户端开启 debug 模式后,会每 5s 拉取一次测试策略。在 AE 运营模块可以创建模版测试或者策略测试,等待策略拉取过程中,可以关注前端页面的进度节点。

参考操作文档 配置模板管理 中的客户端发送测试部分。

客户端SDK发送测试需要使用测试设备,您可在测试设备列表中选择或添加测试设备。

这篇文档对你有帮助吗?