콘텐츠로 이동

빠른 시작

이 문서는 iOS/tvOS/macOS RUM SDK의 최단 접근 경로를 제공하여, 최소한의 단계로 검증 가능한 데이터 업로드를 완료할 수 있도록 돕습니다.

사전 준비

시작하기 전에 다음 준비를 완료하세요.

  1. RUM에서 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, 크래시 및 ANR 수집을 활성화합니다.
  4. 디버그 로그를 활성화하고, 애플리케이션을 실행하여 페이지 열기 또는 네트워크 요청을 트리거합니다.
  5. 콘솔과 Guance 플랫폼에서 데이터가 성공적으로 업로드되었는지 확인합니다.

SDK 설치

설치 방법은 애플리케이션 연동을 직접 참조하세요.

빠른 검증만 원할 경우, Swift Package Manager를 우선 사용하는 것을 권장합니다. 기존 의존성 관리 제약이 있는 경우에만 CocoaPods 또는 Carthage를 선택하세요.

최소 초기화 예제

iOS/tvOS는 일반적으로 AppDelegate에서 초기화합니다. macOS에서는 첫 번째로 표시되는 NSViewControllerviewDidLoad 메서드, NSWindowControllerwindowDidLoad 메서드 호출이 AppDelegate의 applicationDidFinishLaunching보다 먼저 실행되므로, 첫 번째 뷰의 생명 주기 수집 이상을 방지하기 위해 main.m 또는 main.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 연동을 충족하며, 크래시 및 ANR 감지가 기본적으로 활성화되어 있습니다. 로컬 환경 배포를 사용하는 경우 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. Guance 콘솔로 돌아가서 애플리케이션에 RUM 데이터가 표시되는지 확인합니다.

추가 문제 해결이 필요한 경우 문제 해결을 참조하세요.

다음 단계

문서 평가

이 페이지가 도움이 되었나요?