사용자 정의 태그 사용¶
컴파일 구성 방식¶
멀티 Configurations를 생성하고 전처리 지시문을 사용하여 다른 태그 값을 설정할 수 있습니다.
- 멀티 Configurations 생성
- 사전 정의 속성을 설정하여 다른 Configurations 구분
- 전처리 지시문 사용
//Target -> Build Settings -> GCC_PREPROCESSOR_DEFINITIONS 에서 사전 정의 설정
#if PRE
#define Track_id @"0000000001"
#define STATIC_TAG @"preprod"
#elif DEVELOP
#define Track_id @"0000000002"
#define STATIC_TAG @"common"
#else
#define Track_id @"0000000003"
#define STATIC_TAG @"prod"
#endif
FTRumConfig *rumConfig = [[FTRumConfig alloc]init];
rumConfig.globalContext = @{@"track_id":Track_id,@"static_tag":STATIC_TAG};
... // 기타 설정 작업
[[FTMobileAgent sharedInstance] startRumWithConfigOptions:rumConfig];
멀티 환경 구성 매개변수 방법을 참고하여 구성할 수도 있습니다.
런타임 파일 읽기/쓰기 방식¶
RUM 시작 후 설정한 globalContext는 적용되지 않으므로, 사용자가 로컬에 저장한 후 다음 애플리케이션 시작 시 설정하여 적용할 수 있습니다.
NSUserDefaults와 같은 파일 저장을 통해 로컬에 저장하고, SDK 사용 시 구성 단계에서 태그 데이터를 가져오는 코드를 추가합니다.
NSString *dynamicTag = [[NSUserDefaults standardUserDefaults] valueForKey:@"DYNAMIC_TAG"]?:@"NO_VALUE";
FTRumConfig *rumConfig = [[FTRumConfig alloc]init];
rumConfig.globalContext = @{@"dynamic_tag":dynamicTag};
... // 기타 설정 작업
[[FTMobileAgent sharedInstance] startRumWithConfigOptions:rumConfig];
- 원하는 위치에 파일 데이터를 변경하는 메서드를 추가합니다.
- 마지막으로 애플리케이션을 재시작하여 적용합니다.
SDK 런타임에 추가¶
SDK 초기화 완료 후 [FTMobileAgent appendGlobalContext:globalContext], [FTMobileAgent appendRUMGlobalContext:globalContext], [FTMobileAgent appendLogGlobalContext:globalContext]를 사용하여 동적으로 태그를 추가할 수 있으며, 설정 즉시 적용됩니다. 그 후 RUM 또는 Log에서 이후에 업로드하는 데이터에 자동으로 해당 태그가 포함됩니다.
이 사용 방식은 로그인, API 요청 또는 로컬 비동기 초기화 후에 태그 데이터를 가져와야 하는 등 데이터를 지연하여 가져와야 하는 시나리오에 적합합니다.
!!! warning
SDK 초기화 구성의 `globalContext` 또는 SDK 내장 필드와 동일한 키를 사용하지 마십시오. 동일한 이름일 경우, 초기화 구성의 정적 태그가 동적으로 추가된 태그보다 우선순위가 높습니다.
사용 방법¶
/// SDK 전역 태그 추가, RUM, Log 데이터에 적용
/// - Parameter context: 사용자 정의 데이터
+ (void)appendGlobalContext:(NSDictionary <NSString*,id>*)context;
/// RUM 사용자 정의 태그 추가, RUM 데이터에 적용
/// - Parameter context: 사용자 정의 데이터
+ (void)appendRUMGlobalContext:(NSDictionary <NSString*,id>*)context;
/// Log 전역 태그 추가, Log 데이터에 적용
/// - Parameter context: 사용자 정의 데이터
+ (void)appendLogGlobalContext:(NSDictionary <NSString*,id>*)context;
/// SDK 전역 태그 추가, RUM, Log 데이터에 적용
/// - Parameter context: 사용자 정의 데이터
open class func appendGlobalContext(_ context: [String : Any])
/// RUM 사용자 정의 태그 추가, RUM 데이터에 적용
/// - Parameter context: 사용자 정의 데이터
open class func appendRUMGlobalContext(_ context: [String : Any])
/// Log 전역 태그 추가, Log 데이터에 적용
/// - Parameter context: 사용자 정의 데이터
open class func appendLogGlobalContext(_ context: [String : Any])

