Skip to content

Changelog


1.6.6 (2026/07/15)

  1. Migration Changes: The distribution products of CocoaPods and Swift Package Manager have been renamed from the FTMobileSDK series to the TrueWatchSDK series. Please use TrueWatchSDK, TrueWatchWidgetExtension and TrueWatchSessionReplay. The CocoaPods aliases TrueWatchSDK/Extension and TrueWatchSDK/FTSessionReplay are still available. For upgrading existing projects, please refer to the Migration Guide.
  2. Added experimental Session Replay heatmap correlation capability, which can be enabled via FTSessionReplayConfig.enableHeatmap. This capability only correlates automatically collected UIKit Actions. Some UIKit Actions may not support Heatmap; SwiftUI Actions do not support automatic collection, so they cannot be correlated with heatmaps through this capability.
  3. Added system compression and zlib header files.
  4. Optimized URLSession Resource stability, retaining request and trace data in asynchronous processing, and limiting the cached response body size to reduce OOM risks.
  5. Fixed issues with RUM CPU calculation, application launch, application status, Session timeout, crash context, and active View context processing.
  6. Improved ANR reliability, avoiding executing SQLite VACUUM when the application enters the background, and retrying full thread backtracking collection.
  7. Fixed potential array out-of-bounds crash caused by invalid enum values.

1.6.5 (2026/06/09)

  1. Added FTSessionReplayConfig.enableSwiftUI to explicitly enable SwiftUI recording capability for Session Replay, disabled by default.
  2. Added support for custom source value when uploading iOS Session Replay Segments, to adapt to Flutter Session Replay scenarios.
  3. Fixed a Session Replay crash caused by dynamic UIColor parsing, and optimized background snapshot handling and SwiftUI recording stability.
  4. Optimized Session Replay data cache processing after sampling state changes, fixed the issue where recording did not start after erroneous sampling took effect, improving recording continuity and stability.
  5. Optimized upload scheduling and retry handling for Session Replay, RUM, and Logs.
  6. Optimized Session Replay rendering correctness and performance, including node flattening, snapshot processing queue priority, View Tree privacy override inheritance, and unsupported placeholder cropping.
  7. Fixed the consistency issue between RUM View time and upload package, by retaining event time and deduplicating View data before package ID generation.

1.6.4 (2026/05/21)

  1. Added Session Replay support for SwiftUI views.
  2. Added RUM SwiftUI view tracking and manual click Action tracking support.
  3. Added app_launch_type field to cold start Actions, to distinguish between foreground launch and background launch.
  4. Added FTMobileConfig.enableDataFilter and FTMobileConfig.dataFilters to enable DataFilter on the SDK side and configure local blacklist rules. DataFilter rules are executed after lineDataModifier and before local cache writing.
  5. Optimized upload worker shutdown isolation, upload callback synchronization, and RUM upload behavior, avoiding duplicate uploads, expired retry loops, upload execution conflicts, and skipping duplicate View data during upload.
  6. Replaced RUM placeholder View processing with fallback View resolution, improving View tracking consistency when the original View is unavailable.
  7. Optimized handling of preset property Tags in nil, empty value, and user information update scenarios.

1.6.3 (2026/04/30)

  1. Added view_long_task_rate to calculate the page freeze rate of RUM Views.
  2. Added network_available field to RUM Resource data, recording a snapshot of network availability status at the start of the resource.
  3. Added crash duration fields from application status statistics to RUM crash data: foreground_crash_free_duration and background_crash_free_duration.
  4. Added support for associating RUM Keys with Session Replay resource uploads.
  5. Enabled data upload request compression by default.
  6. Fixed a race condition issue with NSDate in the long task detector.
  7. Fixed WKWebView bridge locking and repeated enablement issues, improving WebView RUM / Session Replay stability.
  8. Fixed the issue where local CSS injection might fail when Session Replay processes WebView node data.

1.6.2 (2026/04/17)

  1. Added Session Replay capability, supporting WebView Session Replay.
  2. Added Session Replay and RUM context correlation capability, allowing correlation of WebView containers with the context of loaded HTML content.
  3. Added Session Replay error sampling capability, and support for dynamically controlling Session Replay through remote configuration.
  4. Added Session Replay image resource upload capability.
  5. Session Replay supports configuring touch, text and input, and image privacy settings via touchPrivacy, textAndInputPrivacy, imagePrivacy, and also supports setting view-level privacy overrides for a single UIView via sessionReplayPrivacyOverrides.

1.5.21 (2026/04/15)

  1. Added setDatakitURL: and setDatawayURL:clientToken: methods, supporting dynamic update of reporting endpoints at runtime.
  2. Adjusted minimum deployment targets to iOS 12+ and macOS 10.14+.
  3. Fixed the issue where View association failed when calling addAction:.
  4. Optimized Log and RUM association logic, adding the missing action_id field.
  5. Fixed RemoteConfig fetch interval logic, using the last request time stored locally to validate the request interval when the SDK starts.
  6. Fixed the issue where dynamic changes to sampling rates did not take effect.

1.5.20 (2026/02/26)

  1. Fixed concurrent read/write issues in FTPresetProperty, avoiding crashes caused by dictionary corruption and duplicate releases.
  2. Enabled WAL mode for SQLite within the SDK.
  3. Replaced the deprecated SCNetworkReachability with NWPathMonitor.
  4. Removed usage of the deprecated API UIScreen.mainScreen.
  5. Fixed the processing logic of FTMobileConfig.dataModifier to cover all data entries.

1.5.19 (2026/01/09)

  1. Extended resource_type, adding image, media, font, CSS, JS, and native types.
  2. Added resource_id to network errors, for correlating corresponding resource data.
  3. Supported custom parsing and configuration of remote variables via FTMobileConfig.remoteConfigFetchCompletionBlock or +updateRemoteConfigWithMiniUpdateInterval:completion: method callbacks.
  4. Added resource_http_protocol, resource_request_size, and resource_connection_reuse fields to Resources.
  5. 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.
  6. Fixed data loss caused by missing RUM Views.
  7. Enhanced crash and ANR stack capabilities, supporting full thread information collection, and supporting setting crash monitoring types via FTRumConfig.crashMonitoring.

1.5.18 (2025/08/08)

  1. Added support for filtering RUM View/Action collection and customizing View/Action names via FTRumConfig.viewTrackingHandler and FTRumConfig.actionTrackingHandler.
  2. Added method -updateViewLoadingTime: to update the loading time for the currently active RUM View.
  3. Fixed the missing sdk_name field in log data.
  4. Fixed UserScripts conflicts in WebView data collection.
  5. Fixed thread safety issues in SDK shutdown operations.
  6. Fixed a crash caused by modifying the main thread's name during Long task monitoring.
  7. Added FTRumConfig.h/.m files, splitting FTRumConfig from FTMobileConfig.h into separate files.

1.5.17 (2025/06/11)

  1. Added FTRUMConfig.enableTraceWebView to configure whether to enable SDK collection of webview data, and FTRUMConfig.allowWebViewHost to control which host addresses to filter.
  2. Added FTRumConfig.sessionTaskErrorFilter to filter local network errors.
  3. Added FTMobileConfig.remoteConfiguration to support enabling remote configuration features, and FTMobileConfig.remoteConfigMiniUpdateInterval to set the minimum update interval after enabling remote control.

1.5.16 (2025/05/16)

  1. Added FTMobileConfig.lineDataModifier and FTMobileConfig.dataModifier to support data replacement during writing, enabling data masking.
  2. Added FTRUMConfig.sessionErrorSampleRate to support error sampling. When not sampled by sampleRate, errors can trigger sampling of RUM data from 1 minute prior.
  3. Logger supports filtering custom log levels via logLevelFilter.
  4. When navigating from a native page to a WebView page, the native page name is used to populate view_referrer.

1.5.15 (2025/04/14)

  1. Fixed Swift Package Manager compilation errors.

1.5.14 (2025/03/07)

  1. Added RUM Resource data fields resource_first_byte_time, resource_dns_time, resource_download_time, resource_connect_time, resource_ssl_time, and resource_redirect_time. These enhance Resource duration display in TrueWatch and align the timeline with the APM flame graph.
  2. Enabled FTMobileConfig.enableDataIntegerCompatible by default.
  3. Added support for disabling URLSession Method Swizzling within the SDK via the macro FT_DISABLE_SWIZZLING_RESOURCE.
  4. Optimized data synchronization, adding failure retransmission logic.

1.5.13 (2025/02/27)

  1. Optimized page collection logic to prevent RUM View collection omissions caused by special views.

1.5.12 (2025/02/10)

  1. Adjusted file storage path configuration to fix database creation failures in the tvOS environment.
  2. Updated default service and log source for tvOS environment to df_rum_tvos and df_rum_tvos_log respectively.
  3. Fixed inaccurate duration calculation in RUM Action events.

1.5.11 (2025/02/05)

  1. Optimized RUM Resource collection to prevent collecting SDK internal requests when RUM automatic Resource collection is enabled.
  2. Fixed skyWalking type trace tracking failures in Widget Extensions.

1.5.10 (2025/01/21)

  1. Added support for intercepting Requests for custom tracing via FTTraceConfig.traceInterceptor, and adding custom properties to RUM Resources via FTRumConfig.resourcePropertyProvider.
  2. Fixed exceptions caused by multi-threaded access to the method for dynamically adding global properties.
  3. Optimized incoming WebView data information.

1.5.9 (2025/01/08)

  1. Added support for intercepting URLRequest via FTURLSessionDelegate.traceInterceptor block for custom trace tracking, and modifying spanId and traceId in the trace.
  2. RUM Resource supports collecting network requests initiated via swift async/await URLSession APIs.
  3. Fixed the issue of incorrect View association for LongTask and ANR.

1.5.8 (2024/12/23)

  1. Added tvOS support.
  2. Added support for limiting the maximum number of RUM cache entries via FTRUMConfig.rumCacheLimitCount, and setting the discard strategy via FTRUMConfig.rumDiscardType.
  3. Added support for limiting total cache size via FTMobileConfig.enableLimitWithDbSize. When enabled, FTLoggerConfig.logCacheLimitCount and FTRUMConfig.rumCacheLimitCount become ineffective. Supports setting database discard strategy via FTMobileConfig.dbDiscardType and database cache limit via FTMobileConfig.dbCacheLimit.

1.5.7 (2024/12/04)

  1. Added support for setting the freeze detection threshold via FTRUMConfig.freezeDurationMs.
  2. Optimized the SDK's shutDown method to avoid freezes or WatchDog crashes caused by synchronous waiting on the main thread.

1.5.6 (2024/11/13)

  1. Added support for deflate compression configuration of synchronized data using FTMobileConfig.compressIntakeRequests.
  2. Added addAction:actionType:property and startAction:actionType:property: methods to RUM, optimizing RUM Action collection logic.
  3. Fixed a crash caused by using the deprecated NSFileHandle API.

1.5.5 (2024/11/06)

  1. Fixed a crash caused by array out-of-bounds in FTResourceMetricsModel.

1.5.4 (2024/10/18)

  1. Added dynamic setting methods for global, log, and RUM globalContext properties.
  2. Added a method to clear data, supporting deletion of all data not yet uploaded to the server.
  3. Adjusted the maximum time interval for synchronization interval to 5000 milliseconds.

1.5.3 (2024/10/09)

  1. Fixed a memory access error crash caused by incorrect property modifier usage during LongTask and ANR collection.
  2. Replaced method signature verification assertions in FTSwizzler with internal warning logs.
  3. Optimized the decimal precision of collected data.

1.5.2 (2024/08/21)

  1. Fixed the missing #include <arm/_mcontext.h> header file issue when compiling with Xcode 16.
  2. When automatically collecting RUM-Resources, resources obtained directly from local cache or with unknown fetch types are filtered out to prevent duplicate collection.
  3. Fixed the loadingTime calculation logic for UITabBarController child views.

1.5.1 (2024/08/02)

  1. Fixed the line protocol data escaping algorithm to resolve data synchronization failures caused by newline characters.
  2. Optimized error messages for the network_error error type, using English descriptions for network request error codes.
  3. Optimized data synchronization logic, fixing a crash caused by multi-threaded access to a released uploadDelayTimer.
  4. Fixed a crash caused by incorrect encoding format when converting between OC and C strings during crash information collection.

1.5.0 (2024/06/03)

  1. Added remote IP address resolution functionality for RUM resource network requests.
  2. Added compatibility mode for line protocol Integer data to handle web data type conflicts.
  3. Added a method for custom status in logs.
  4. Optimized log data writing and data synchronization.
  5. Performed format processing on NSDictionary type parameters passed to the SDK to prevent data loss due to JSON conversion failures.

1.4.14 (2024/05/29)

  1. Fixed a memory access error crash caused by accessing a destroyed Class object in FTSwizzler.
  2. Fixed potential data consistency and operation conflict issues when the NSDictionary type parameter passed to the SDK is actually a mutable object.

1.4.13 (2024/05/15)

  1. Optimized RUM LongTask and ANR collection, fixed inaccurate LongTask stack information collection, and added support for collecting fatal freezes.
  2. Fixed a crash caused by simultaneous multi-threaded operations on NSMutableSet in FTSwizzler.
  3. Fixed missing version information in the packaged SDK Framework info.plist.
  4. Fixed failure to collect Resource performance metrics when a custom NSURLSession does not have a delegate set.
  5. Optimized the conversion of SDK internal logs to files, adding a method to specify the file path.

1.4.12 (2024/04/26)

  1. Fixed memory leak issues caused by calling the SDK shutdown method shutDown.
  2. Fixed a crash caused by conflicts with other libraries when collecting RUM-Resources.
  3. Fixed the issue where the UncaughtExceptionHandler was not passed on during crash collection.
  4. Fixed data anomalies caused by initializing the SDK multiple times.

1.4.11(2024/03/28)

  1. Added support for configuring data synchronization parameters: request entry count, synchronization interval, and log cache entry count.
  2. Added a method to convert internal logs to files.
  3. Fixed errors in obtaining log-associated RUM data.
  4. Optimized time-consuming operations.
  5. Fixed crashes caused by WebView jsBridge, changed WebView references to weak references.

More Logs