iOS
iOS SDK의 최소 지원 시스템 버전은 iOS 9.0입니다
최신 버전: v1.3.1
업데이트 시간: 2026-07-24
리소스 다운로드: 다운로드
Beta 버전: 없음
1. 개요
AE 4.4 버전부터 운영 모듈에 구성 센터 기능이 출시되었습니다. AE 백엔드에서 기능 파라미터 구성을 추가하고 클라이언트 SDK를 통해 App으로 가져와, 플레이어와의 상호 작용 콘텐츠를 세밀하게 맞춤 설정할 수 있습니다.
이 문서에서는 클라이언트 SDK의 통합 과정을 소개합니다. App 측에서는 ThinkingData SDK와의 상호 작용만 고려하면 되며, AE 백엔드의 작업 세부 사항은 신경 쓸 필요가 없습니다.
2. SDK 통합
2.1 SDK 자동 통합
-
컴퓨터에 CocoaPods 패키지 관리 도구가 설치되어 있는지 확인합니다
-
프로젝트에 Podfile 파일이 없다면 프로젝트 파일(
.xcodeproj)과 같은 디렉터리에서 명령줄로 다음 명령을 실행해야 합니다:pod init -
Podfile의 내용을 다음과 같이 편집합니다:
platform :ios, '9.0'target 'YourProjectTarget' dopod 'TDRemoteConfig'end -
프로젝트의 루트 디렉터리에서 설치 명령을 실행합니다
pod install성공하면 터미널에 다음과 같은 메시지가 표시됩니다:
Analyzing dependenciesDownloading dependenciesInstalling TDRemoteConfig (x.x.x)Installing ThinkingDataCore (x.x.x)Installing ThinkingSDK (x.x.x)Generating Pods projectIntegrating client projectPod installation complete! There is 1 dependency from the Podfile and 3 total pods installed. -
가져오기에 성공하면 프로젝트를 시작합니다
명령이 성공적으로 실행되면 .xcworkspace 파일이 생성되며, 이는 iOS SDK를 성공적으로 가져왔음을 의미합니다. .xcworkspace 파일을 열어 프로젝트를 시작합니다(주의: 이때 .xcodeproj 파일을 동시에 열면 안 됩니다)
2.2 SDK 수동 통합
구성 센터에는 다음 ThinkingData SDK가 필요합니다.
| SDK 이름 | 소개 | 버전 요구 사항 |
|---|---|---|
| ThinkingSDK | 데이터 수집 및 처리 | >= 3.1.0 |
| TDRemoteConfig | AE 백엔드의 설정 정보 가져오기 | >= 1.0.0 |
| ThinkingDataCore | 기본 컴포넌트 기능 제공 | >= 1.1.0 |
- 페이지 상단의 리소스 다운로드 링크를 클릭하여 SDK를 다운로드하고 압축을 해제합니다
ThinkingSDK.xcframework,ThinkingDataCore.xcframework,TDRemoteConfig.xcframework를 XCode Project Workspace 프로젝트로 드래그합니다- 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 테스트 발송에는 테스트 디바이스가 필요합니다. 테스트 디바이스 목록에서 테스트 디바이스를 선택하거나 추가할 수 있습니다.

