WebSocket 핸드셰이크 요청에 대한 RUM Resource 수집 지원이 추가되었습니다. 데이터에 resource_type=websocket, resource_websocket_collection_level=handshake, resource_websocket_handshake_state(success, rejected, failed) 필드가 추가되었습니다.
FTRumConfig.issueDataProvider가 추가되어, 자동 수집된 Crash 및 ANR RUM Error에 검증된 사용자 정의 필드와 이전 컨텍스트를 첨부할 수 있습니다.
macOS Session Replay 녹화 지원이 추가되어, 일반적인 AppKit 뷰 및 컨트롤을 포괄합니다.
macOS 애플리케이션 시작 Action 자동 수집이 추가되었으며, macOS 기본 service 및 Log source 태그가 통일되었습니다.
Session Replay 리소스 검사 및 업로드가 RUM 컨텍스트 연결을 지원합니다. FTSessionReplayConfig.enableLinkRUMKeys를 통해 전달할 RUM globalContext 필드를 선택하여, 동일한 리소스가 다른 연결 컨텍스트에서 올바르게 라우팅되고, 독립적으로 보존되며, 중복 제거되도록 보장합니다.
폴백 View, 애플리케이션 시작, 첫 프레임 추적, 지연된 초기 Action, Session 만료 등의 시나리오에서 RUM 생명주기 처리가 최적화되었습니다.
UIKit 및 SwiftUI 자동 수집 RUM View의 loading_time 측정이 최적화되어, 사전 렌더링 및 사전 로드 단계의 유휴 시간이 제외되었습니다.
마이그레이션 변경 사항: CocoaPods 및 Swift Package Manager의 배포 제품이 FTMobileSDK 시리즈에서 GuanceSDK 시리즈로 변경되었습니다. GuanceSDK, GuanceWidgetExtension, GuanceSessionReplay를 사용하십시오. CocoaPods 별칭 GuanceSDK/Extension 및 GuanceSDK/FTSessionReplay는 계속 사용 가능합니다. 기존 프로젝트 업그레이드는 마이그레이션 가이드를 참조하십시오.
실험적인 Session Replay 히트맵 연결 기능이 추가되었습니다. FTSessionReplayConfig.enableHeatmap을 통해 활성화할 수 있습니다. 이 기능은 자동 수집된 UIKit Action에만 연결되며, 일부 UIKit Action은 Heatmap을 지원하지 않을 수 있습니다. SwiftUI Action은 자동 수집을 지원하지 않으므로 이 기능을 통해 히트맵을 연결할 수 없습니다.
시스템 compression 및 zlib 헤더 파일이 추가되었습니다.
URLSession Resource 안정성이 최적화되어, 비동기 처리에서 request 및 trace 데이터가 유지되고, 캐시된 응답 본문 크기가 제한되어 OOM 위험이 감소되었습니다.
RUM CPU 계산, 애플리케이션 시작, 애플리케이션 상태, Session 시간 초과, 크래시 컨텍스트 및 활성 View 컨텍스트 처리 문제가 수정되었습니다.
ANR 안정성이 향상되어, 애플리케이션이 백그라운드로 전환될 때 SQLite VACUUM이 실행되지 않도록 하고, 전체 스레드 역추적 수집이 재시도됩니다.
콜드 스타트 Action에 app_launch_type 필드가 추가되어 포그라운드 시작과 백그라운드 시작을 구분합니다.
FTMobileConfig.enableDataFilter 및 FTMobileConfig.dataFilters가 추가되어 SDK 측 DataFilter를 활성화하고 로컬 블랙리스트 규칙을 구성할 수 있습니다. DataFilter 규칙은 lineDataModifier 이후, 로컬 캐시 쓰기 이전에 실행됩니다.
업로드 Worker 종료 격리, 업로드 콜백 동기화 및 RUM 업로드 동작이 최적화되어 중복 업로드, 만료된 재시도 루프, 업로드 실행 충돌을 방지하고 업로드 시 중복 View 데이터를 건너뜁니다.
RUM 플레이스홀더 View 처리가 폴백 View 해석으로 대체되어, 원래 View를 사용할 수 없을 때 View 추적 일관성이 향상되었습니다.
nil, 빈 값 및 사용자 정보 업데이트 시나리오에서 사전 설정 속성 Tag 처리가 최적화되었습니다.
Session Replay 기능이 추가되어 WebView Session Replay를 지원합니다.
Session Replay와 RUM 컨텍스트 연결 기능이 추가되어, WebView 컨테이너와 로드된 HTML 콘텐츠의 컨텍스트를 연결할 수 있습니다.
Session Replay 오류 샘플링 기능이 추가되었고, 원격 구성을 통해 Session Replay를 동적으로 제어할 수 있습니다.
Session Replay 이미지 리소스 업로드 기능이 추가되었습니다.
Session Replay는 touchPrivacy, textAndInputPrivacy, imagePrivacy를 통해 터치, 텍스트 및 입력, 이미지의 개인 정보 보호 구성을 지원하며, sessionReplayPrivacyOverrides를 통해 개별 UIView에 대한 뷰 수준 개인 정보 보호 오버라이드를 지원합니다.
RUM Resource 데이터 필드 resource_first_byte_time, resource_dns_time, resource_download_time, resource_connect_time, resource_ssl_time, resource_redirect_time가 추가되어 Guance에서 Resource 소요 시간 강화 표시를 지원하고, APM 플레임 그래프에서 시간 축 정렬을 지원합니다.
FTMobileConfig.enableDataIntegerCompatible이 기본적으로 활성화됩니다.
매크로 정의 FT_DISABLE_SWIZZLING_RESOURCE를 통해 SDK 내 URLSession Method Swizzling 메서드를 비활성화할 수 있습니다.
FTRUMConfig.rumCacheLimitCount를 통해 RUM 최대 캐시 항목 수를 제한할 수 있습니다.
FTRUMConfig.rumDiscardType을 통해 폐기 전략을 설정할 수 있습니다.
FTMobileConfig.enableLimitWithDbSize를 통해 총 캐시 크기 제한 기능을 지원합니다. 활성화 시
FTLoggerConfig.logCacheLimitCount 및 FTRUMConfig.rumCacheLimitCount는 무효화됩니다.
FTMobileConfig.dbDiscardType을 통해 db 폐기 전략을,
FTMobileConfig.dbCacheLimit을 통해 db 캐시 제한 크기를 설정할 수 있습니다.