跳转至

快速开始

本文用于提供 iOS/tvOS/macOS RUM SDK 的最短接入路径,帮助您以最少步骤完成一次可验证的数据上报。

前置准备

开始前,请先完成以下准备:

  1. 用户访问监测中创建 iOS、tvOS 或 macOS 应用,并获取 RUM App ID
  2. 确认上报地址与认证方式:
  3. 本地环境部署:准备 datakitUrl
  4. 公网 DataWay:准备 datawayUrlclientToken
  5. 确认项目已经完成 SDK 安装;推荐使用 Swift Package Manager,也兼容 CocoaPodsCarthage

接入步骤

  1. 在项目中安装 GuanceSDK
  2. 在应用启动时初始化 FTSDKConfig
  3. 初始化 FTRumConfig 并开启 View、Action、Resource、崩溃和卡顿采集
  4. 开启调试日志,运行应用并触发一次页面打开或网络请求
  5. 在控制台与观测云平台确认数据已成功上报

安装 SDK

安装方式请直接参考 应用接入

如果您只想快速验证,推荐优先使用 Swift Package Manager;仅在已有依赖管理约束时再选择 CocoaPodsCarthage

最小初始化示例

iOS/tvOS 通常在 AppDelegate 中初始化。macOS 中第一个显示的 NSViewControllerviewDidLoad 方法、NSWindowControllerwindowDidLoad 方法调用要早于 AppDelegate applicationDidFinishLaunching,为避免第一个视图的生命周期采集异常,建议在 main.mmain.swift 中进行 SDK 初始化。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 本地环境部署使用 [[FTSDKConfig alloc] initWithDatakitUrl:datakitUrl]
    FTSDKConfig *config = [[FTSDKConfig alloc] initWithDatawayUrl:datawayUrl clientToken:clientToken];
    config.enableSDKDebugLog = YES;
    [FTMobileAgent startWithConfigOptions:config];

    FTRumConfig *rumConfig = [[FTRumConfig alloc] initWithAppid:appid];
    rumConfig.enableTraceUserView = YES;
    rumConfig.enableTraceUserAction = YES;
    rumConfig.enableTraceUserResource = YES;
    rumConfig.enableTrackAppFreeze = YES;
    rumConfig.enableTrackAppCrash = YES;
    rumConfig.enableTrackAppANR = YES;
    [[FTMobileAgent sharedInstance] startRumWithConfigOptions:rumConfig];
    return YES;
}
// main.m 文件
#import <Cocoa/Cocoa.h>
#import <GuanceSDK/GuanceSDK.h>
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // 本地环境部署使用 [[FTSDKConfig alloc] initWithDatakitUrl:datakitUrl]
        FTSDKConfig *config = [[FTSDKConfig alloc] initWithDatawayUrl:datawayUrl clientToken:clientToken];
        config.enableSDKDebugLog = YES;
        [FTSDKAgent startWithConfigOptions:config];

        FTRumConfig *rumConfig = [[FTRumConfig alloc] initWithAppid:appid];
        rumConfig.enableTraceUserView = YES;
        rumConfig.enableTraceUserAction = YES;
        rumConfig.enableTraceUserResource = YES;
        rumConfig.enableTrackAppFreeze = YES;
        rumConfig.enableTrackAppCrash = YES;
        rumConfig.enableTrackAppANR = YES;
        rumConfig.errorMonitorType = FTErrorMonitorAll;
        rumConfig.deviceMetricsMonitorType = FTDeviceMetricsMonitorAll;
        [[FTSDKAgent sharedInstance] startRumWithConfigOptions:rumConfig];
    }
    return NSApplicationMain(argc, argv);
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // 本地环境部署使用 FTSDKConfig(datakitUrl: datakitUrl)
    let config = FTSDKConfig(datawayUrl: datawayUrl, clientToken: clientToken)
    config.enableSDKDebugLog = true
    FTMobileAgent.start(withConfigOptions: config)

    let rumConfig = FTRumConfig(appid: appid)
    rumConfig.enableTraceUserView = true
    rumConfig.enableTraceUserAction = true
    rumConfig.enableTraceUserResource = true
    rumConfig.enableTrackAppFreeze = true
    rumConfig.enableTrackAppCrash = true
    rumConfig.enableTrackAppANR = true
    FTMobileAgent.sharedInstance().startRum(withConfigOptions: rumConfig)
    return true
}
import Cocoa
import GuanceSDK
let delegate = AppDelegate()
NSApplication.shared.delegate = delegate

// 本地环境部署使用 FTSDKConfig(datakitUrl: datakitUrl)
let config = FTSDKConfig(datawayUrl: datawayUrl, clientToken: clientToken)
config.enableSDKDebugLog = true
FTSDKAgent.start(withConfigOptions: config)

let rumConfig = FTRumConfig(appid: appid)
rumConfig.enableTraceUserView = true
rumConfig.enableTraceUserAction = true
rumConfig.enableTraceUserResource = true
rumConfig.enableTrackAppFreeze = true
rumConfig.enableTrackAppCrash = true
rumConfig.enableTrackAppANR = true
rumConfig.errorMonitorType = .all
rumConfig.deviceMetricsMonitorType = .all
FTSDKAgent.sharedInstance().startRum(withConfigOptions: rumConfig)

_ = NSApplicationMain(CommandLine.argc, CommandLine.unsafeArgv)

使用 Swift 时,请先创建 main.swift 文件,并删除 AppDelegate.swift 中的 @main@NSApplicationMain

以上示例已满足最小 RUM 接入,并默认开启崩溃与卡顿检测;若使用本地环境部署,请将 initWithDatawayUrl:clientToken: / FTSDKConfig(datawayUrl:clientToken:) 替换为 initWithDatakitUrl: / FTSDKConfig(datakitUrl:)FTMobileConfig 当前仍可兼容使用,新代码建议使用 FTSDKConfig。macOS 当前为 Alpha 版本,不承诺所有 iOS 功能都支持。

可选:初始化 Log 和 Trace

如果您还需要日志采集或链路追踪,可继续追加以下初始化:

FTLoggerConfig *loggerConfig = [[FTLoggerConfig alloc] init];
loggerConfig.enableCustomLog = YES;
loggerConfig.enableLinkRumData = YES;
[[FTMobileAgent sharedInstance] startLoggerWithConfigOptions:loggerConfig];

FTTraceConfig *traceConfig = [[FTTraceConfig alloc] init];
traceConfig.enableAutoTrace = YES;
traceConfig.enableLinkRumData = YES;
[[FTMobileAgent sharedInstance] startTraceWithConfigOptions:traceConfig];
let loggerConfig = FTLoggerConfig()
loggerConfig.enableCustomLog = true
loggerConfig.enableLinkRumData = true
FTMobileAgent.sharedInstance().startLogger(withConfigOptions: loggerConfig)

let traceConfig = FTTraceConfig()
traceConfig.enableAutoTrace = true
traceConfig.enableLinkRumData = true
FTMobileAgent.sharedInstance().startTrace(withConfigOptions: traceConfig)

验证接入是否成功

  1. 保持 enableSDKDebugLog = YES/true 开启,运行应用
  2. 打开一个页面,或发起一次 URLSession 网络请求
  3. 在 Xcode 控制台中确认出现 SDK 初始化和数据同步相关日志
  4. 返回观测云控制台,确认应用中已出现对应的 RUM 数据

如果需要进一步排查,请查看 故障排查

下一步

文档评价

文档内容是否对您有帮助? ×