自定义标签使用¶
编译配置方式¶
可采用创建多 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 后续上报的数据会自动附带对应标签。
这种使用方式适合延迟获取数据的场景,例如标签数据需要通过登录、接口请求或本地异步初始化之后才能拿到。
使用方法¶
/// 添加 SDK 全局 tag,作用于 RUM、Log 数据
/// - Parameter context: 自定义数据
+ (void)appendGlobalContext:(NSDictionary <NSString*,id>*)context;
/// 添加 RUM 自定义 tag,作用于 RUM 数据
/// - Parameter context: 自定义数据
+ (void)appendRUMGlobalContext:(NSDictionary <NSString*,id>*)context;
/// 添加 Log 全局 tag,作用于 Log 数据
/// - Parameter context: 自定义数据
+ (void)appendLogGlobalContext:(NSDictionary <NSString*,id>*)context;
/// 添加 SDK 全局 tag,作用于 RUM、Log 数据
/// - Parameter context: 自定义数据
open class func appendGlobalContext(_ context: [String : Any])
/// 添加 RUM 自定义 tag,作用于 RUM 数据
/// - Parameter context: 自定义数据
open class func appendRUMGlobalContext(_ context: [String : Any])
/// 添加 Log 全局 tag,作用于 Log 数据
/// - Parameter context: 自定义数据
open class func appendLogGlobalContext(_ context: [String : Any])

