Added FTSessionReplayConfig.enableSwiftUI to explicitly enable SwiftUI recording capability for Session Replay, disabled by default.
Added support for custom source value when uploading iOS Session Replay Segments, to adapt to Flutter Session Replay scenarios.
Fixed Session Replay crashes caused by dynamic UIColor parsing, and optimized background snapshot processing and SwiftUI recording stability.
Optimized Session Replay data caching after sampling state changes, fixed the issue where recording did not start after erroneous sampling took effect, improving recording continuity and stability.
Optimized upload scheduling and retry handling for Session Replay, RUM, and Log.
Optimized Session Replay rendering correctness and performance, including node flattening, snapshot processing queue priority, View Tree privacy override inheritance, and unsupported placeholder trimming.
Fixed inconsistency between RUM View time and upload package, by retaining event time and deduplicating View data before package ID generation.
Added RUM SwiftUI view tracking and manual click Action tracking support.
Added app_launch_type field to cold start Actions to distinguish between foreground and background launches.
Added FTMobileConfig.enableDataFilter and FTMobileConfig.dataFilters to enable SDK-side DataFilter and configure local blacklist rules. DataFilter rules are executed after lineDataModifier and before local cache write.
Optimized upload worker shutdown isolation, upload callback synchronization, and RUM upload behavior to avoid duplicate uploads, expired retry loops, upload execution conflicts, and to skip duplicate View data during upload.
Replaced RUM placeholder View handling with fallback View parsing, improving View tracking consistency when the original View is unavailable.
Optimized handling of preset property Tags in scenarios of nil, empty values, and user information updates.
Session Replay supports privacy configuration for touch, text and input, and images via touchPrivacy, textAndInputPrivacy, imagePrivacy, and supports view-level privacy override for individual UIViews via sessionReplayPrivacyOverrides.
Added resource_id to network errors for associating with corresponding resource data.
Support for custom parsing and configuration of remote variables via FTMobileConfig.remoteConfigFetchCompletionBlock or +updateRemoteConfigWithMiniUpdateInterval:completion: method callbacks custom parsing and configuration.
Added resource_http_protocol, resource_request_size, resource_connection_reuse fields to Resource.
Refined cold start and warm start time metrics, adding app_pre_runtime_init_time, app_runtime_init_time, app_uikit_init_time, app_application_init_time, and app_first_frame_init_time.
Fixed data loss issue caused by missing RUM View.
Enhanced crash and ANR stack capability, supporting full thread information collection, and supporting setting crash monitoring type via FTRumConfig.crashMonitoring.
Added support for RUM View/Action collection filtering, custom View/Action names via FTRumConfig.viewTrackingHandler and FTRumConfig.actionTrackingHandler.
Added method -updateViewLoadingTime: to support updating loading time for the currently active RUM View.
Fixed missing sdk_name field in log data.
Fixed UserScripts conflict issue in WebView data collection.
Fixed thread safety issue with SDK shutdown operation.
Fixed crash caused by modifying main thread name during Long task monitoring.
Added FTRumConfig.h/.m files to split FTRumConfig from FTMobileConfig.h into independent files.
Added FTRUMConfig.enableTraceWebView to configure whether to enable webview data collection via SDK, and FTRUMConfig.allowWebViewHost to control host addresses to filter.
Added FTRumConfig.sessionTaskErrorFilter to filter local network errors.
Added FTMobileConfig.remoteConfiguration to support enabling remote conditional configuration, FTMobileConfig.remoteConfigMiniUpdateInterval to set minimum update interval after enabling remote control.
Added FTMobileConfig.lineDataModifier, FTMobileConfig.dataModifier to support data write replacement and data desensitization.
Added FTRUMConfig.sessionErrorSampleRate to support error sampling. When not sampled by sampleRate, it can sample RUM data from 1 minute ago when an error occurs.
Logger supports setting custom log level filtering via logLevelFilter.
When navigating from a native page to a WebView page, the native page name is used to fill view_referrer.
Added RUM Resource data fields resource_first_byte_time, resource_dns_time, resource_download_time, resource_connect_time, resource_ssl_time, resource_redirect_time, supporting enhanced Resource duration display on TrueWatch and alignment with timeline in APM flame graph.
Enabled FTMobileConfig.enableDataIntegerCompatible by default.
Added support for disabling SDK internal URLSession Method Swizzling via macro definition FT_DISABLE_SWIZZLING_RESOURCE.
Optimized data synchronization, added failure retransmission logic.
Support for intercepting Request for custom Trace via FTTraceConfig.traceInterceptor, and adding custom properties to RUM Resource via FTRumConfig.resourcePropertyProvider.
Fixed exception issue with dynamic global property addition method under multi-threaded access.
Added support for intercepting URLRequest via FTURLSessionDelegate.traceInterceptor block for custom trace, changing spanId and traceId within the trace.
RUM Resource supports collecting network requests initiated via swift async/await URLSession API.
Fixed View association error for LongTask and Anr.
Support for limiting maximum RUM cache entry count via FTRUMConfig.rumCacheLimitCount, and setting discard policy via FTRUMConfig.rumDiscardType.
Support for limiting total cache size via FTMobileConfig.enableLimitWithDbSize. After enabling, FTLoggerConfig.logCacheLimitCount and FTRUMConfig.rumCacheLimitCount become invalid. Support for setting db discard policy via FTMobileConfig.dbDiscardType, and db cache limit size via FTMobileConfig.dbCacheLimit.