Skip to content

Changelog


1.6.7 (2026/08/19)

  1. Added RUM Resource collection support for WebSocket handshake requests. New data fields: resource_type=websocket, resource_websocket_collection_level=handshake, and resource_websocket_handshake_state (success, rejected, failed).
  2. Added FTRumConfig.issueDataProvider to attach validated custom fields and historical context to automatically collected Crash and ANR RUM Errors.
  3. Added macOS Session Replay recording support, covering common AppKit views and controls.
  4. Added automatic collection of macOS app launch Actions, and unified the default macOS service and Log source tags.
  5. Session Replay resource inspection and upload now support associating RUM context: use FTSessionReplayConfig.enableLinkRUMKeys to select the RUM globalContext fields to pass through, ensuring that the same resource is correctly routed, independently retained, and deduplicated under different associated contexts.
  6. Optimized RUM lifecycle handling for fallback Views, app launch, first-frame tracking, delayed initial Actions, and session expiration scenarios.
  7. Optimized loading_time measurement for automatically collected UIKit and SwiftUI RUM Views, excluding idle time during pre-rendering and pre-loading phases.

1.6.6 (2026/07/15)

  1. Migration Change: The CocoaPods and Swift Package Manager distribution products have been renamed from the FTMobileSDK series to the TrueWatchSDK series. Use TrueWatchSDK, TrueWatchWidgetExtension, and TrueWatchSessionReplay. The CocoaPods aliases TrueWatchSDK/Extension and TrueWatchSDK/FTSessionReplay remain available. For upgrading existing projects, refer to the Migration Guide.
  2. Added an experimental Session Replay heatmap association capability, which can be enabled via FTSessionReplayConfig.enableHeatmap. This capability only associates with automatically collected UIKit Actions; some UIKit Actions may not support Heatmap. SwiftUI Actions do not support automatic collection, so they cannot be associated with the heatmap through this capability.
  3. Added the system compression and zlib header files.
  4. Improved URLSession Resource stability by retaining request and trace data during asynchronous processing and limiting the cached response body size to reduce OOM risk.
  5. Fixed issues with RUM CPU calculation, app launch, app state, session timeout, crash context, and active View context handling.
  6. Improved ANR reliability by avoiding SQLite VACUUM when the app enters the background and retrying full-thread backtrace collection.
  7. Fixed a 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 for Session Replay. It is disabled by default.
  2. Added support for custom source values when uploading iOS Session Replay Segments, to accommodate Flutter Session Replay scenarios.
  3. Fixed a Session Replay crash caused by dynamic UIColor resolution, and optimized background snapshot handling and SwiftUI recording stability.
  4. Optimized Session Replay data cache handling after sampling state changes, fixed the issue where recording did not start after error sampling took effect, and improved recording continuity and stability.
  5. Optimized upload scheduling and retry handling for Session Replay, RUM, and Log.
  6. Optimized Session Replay rendering correctness and performance, including node flattening, snapshot processing queue priority, View Tree privacy override inheritance, and unsupported placeholder clipping.
  7. Fixed RUM View time and upload package consistency issues by preserving event timestamps 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 tap Action tracking support.
  3. Added the app_launch_type field to cold start Actions to distinguish between foreground and background launches.
  4. Added blacklist filtering capability, allowing Log and RUM data to be filtered before being written to the local cache. Rules can be configured in-app via FTMobileConfig.dataFilters or automatically fetched from the blacklist in the Guance Workspace; both methods take effect simultaneously. This capability is enabled by default. SDK-side filtering can be disabled via FTMobileConfig.enableDataFilter = NO. Filter rules are executed after lineDataModifier.
  5. Optimized upload Worker shutdown isolation, upload callback synchronization, and RUM upload behavior to avoid duplicate uploads, expired retry loops, and upload execution conflicts, and to skip duplicate View data during upload.
  6. Replaced RUM placeholder View handling with fallback View resolution to improve View tracking consistency when the original View is unavailable.
  7. Optimized handling of preset property tags in scenarios involving nil, empty values, and user information updates.

1.6.3 (2026/04/30)

  1. Added view_long_task_rate to measure the page jank rate of RUM Views.
  2. Added the network_available field to RUM Resource data to record the network availability snapshot when the resource starts.
  3. Added crash-free duration fields derived from app state statistics to RUM crash data: foreground_crash_free_duration and background_crash_free_duration.
  4. Session Replay resource upload now supports associating RUM Keys.
  5. Enabled request compression for data upload by default.
  6. Fixed a race condition with NSDate in the Long Task detector.
  7. Fixed WKWebView bridge locking and repeated enabling issues, improving WebView RUM / Session Replay stability.
  8. Fixed the issue where local CSS injection could fail when Session Replay processes WebView node data.

1.6.2 (2026/04/17)

  1. Added Session Replay capability with WebView Session Replay support.
  2. Added the ability to associate Session Replay with RUM context, linking 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 privacy configuration for touches, text and input, and images via touchPrivacy, textAndInputPrivacy, and imagePrivacy, and supports view-level privacy overrides for individual UIViews via sessionReplayPrivacyOverrides.

1.5.21 (2026/04/15)

  1. Added the setDatakitURL: and setDatawayURL:clientToken: methods to support dynamically updating the reporting endpoint at runtime.
  2. Adjusted the minimum deployment version to iOS 12+ and macOS 10.14+.
  3. Fixed the issue where View association failed when calling addAction:.
  4. Optimized the Log-RUM association logic and added the missing action_id field.
  5. Fixed the RemoteConfig fetch interval logic; the SDK now uses the last local request timestamp to validate the fetch interval at startup.
  6. Fixed the issue where dynamically modifying the sample rate did not take effect.

1.5.20 (2026/02/26)

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

1.5.19 (2026/01/09)

  1. Extended resource_type with new types: image, media, font, CSS, JS, and native.
  2. Added resource_id to network errors to associate them with the corresponding resource data.
  3. Added support for custom parsing and configuration of remote variables through callbacks of FTMobileConfig.remoteConfigFetchCompletionBlock or the +updateRemoteConfigWithMiniUpdateInterval:completion: method.
  4. Added the resource_http_protocol, resource_request_size, and resource_connection_reuse fields to Resource data.
  5. Refined cold start and warm start timing metrics with new fields: 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 collection to support capturing full-thread information, and added support for 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 the -updateViewLoadingTime: method 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 the SDK shutdown operation.
  6. Fixed a crash caused by modifying the main thread name during Long Task monitoring.
  7. Added the FTRumConfig.h/.m files to split FTRumConfig into a separate file from FTMobileConfig.h.

1.5.17 (2025/06/11)

  1. Added FTRUMConfig.enableTraceWebView to configure whether to enable WebView data collection through the SDK. Use FTRUMConfig.allowWebViewHost to control which host addresses are filtered.

  2. Added FTRumConfig.sessionTaskErrorFilter to filter local network errors.

  3. Added FTMobileConfig.remoteConfiguration to enable remote conditional configuration, and FTMobileConfig.remoteConfigMiniUpdateInterval to set the minimum update interval after remote control is enabled.

1.5.16 (2025/05/16)

  1. Added FTMobileConfig.lineDataModifier and FTMobileConfig.dataModifier to support data replacement during write and data masking.
  2. Added FTRUMConfig.sessionErrorSampleRate to support error sampling. When a session is not sampled by sampleRate, RUM data from up to one minute before an error can be sampled and collected when the error occurs.
  3. Logger now supports filtering custom log levels via logLevelFilter.
  4. When navigating from a native page to a WebView page, view_referrer is now populated with the native page name.

1.5.15 (2025/04/14)

  1. Fixed compilation errors with Swift Package Manager.

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 to support enhanced display of Resource timings in TrueWatch and timeline alignment in the APM Flame Graph.
  2. Enabled FTMobileConfig.enableDataIntegerCompatible by default.
  3. Added support for disabling URLSession Method Swizzling in the SDK via the macro definition FT_DISABLE_SWIZZLING_RESOURCE.
  4. Optimized data synchronization and added failed-request retry logic.

1.5.13 (2025/02/27)

  1. Optimized page collection logic to prevent special views from causing missing RUM View collection.

1.5.12 (2025/02/10)

  1. Adjusted the file storage path configuration to fix the database creation failure in tvOS environments.
  2. Updated the default service and log source for tvOS environments 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 the SDK from collecting its own internal requests when automatic Resource collection is enabled for RUM.
  2. Fixed the failure of SkyWalking-type distributed tracing in Widget Extension.

1.5.10 (2025/01/21)

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

1.5.9 (2025/01/08)

  1. Added support for intercepting URLRequest via the FTURLSessionDelegate.traceInterceptor block to perform custom distributed tracing and modify the spanId and traceId in the trace.
  2. RUM Resource now supports collecting network requests made through the Swift async/await URLSession API.
  3. Fixed incorrect View association for Long Task and ANR.

1.5.8 (2024/12/23)

  1. Added tvOS support.
  2. Added support for limiting the maximum number of cached RUM entries via FTRUMConfig.rumCacheLimitCount, and for setting the discard strategy via FTRUMConfig.rumDiscardType.
  3. Added support for limiting the total cache size via FTMobileConfig.enableLimitWithDbSize. When enabled, FTLoggerConfig.logCacheLimitCount and FTRUMConfig.rumCacheLimitCount no longer take effect. You can set the database discard strategy via FTMobileConfig.dbDiscardType and the database cache size 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 jank or WatchDog crashes caused by synchronous waiting on the main thread.

1.5.6 (2024/11/13)

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

1.5.5 (2024/11/06)

  1. Fixed a crash caused by array index 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 data clearing method that deletes all data that has not yet been uploaded to the server.
  3. Adjusted the maximum supported synchronization interval to 5000 milliseconds.

1.5.3 (2024/10/09)

  1. Fixed a memory access error crash caused by incorrect property modifiers during Long Task 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 when compiling with Xcode 16.
  2. When automatically collecting RUM Resources, filters out Resources fetched directly from the local cache or with an unknown fetch type to prevent duplicate collection.
  3. Fixed the loadingTime calculation logic for UITabBarController subviews.

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 errors with type network_error, using unified English descriptions for network request error codes.
  3. Optimized data synchronization logic and fixed a crash caused by multi-threaded access to a released uploadDelayTimer.
  4. Fixed a crash caused by encoding errors when converting between Objective-C and C strings during crash information collection.

1.5.0 (2024/06/03)

  1. Added remote IP address resolution for RUM Resource network requests.
  2. Added a line protocol Integer data compatibility mode to handle web data type conflicts.
  3. Added a custom status method for Logs.
  4. Optimized log data writing and data synchronization.
  5. Applied format processing to NSDictionary parameters passed into the SDK to prevent data loss caused by JSON conversion failures.

1.4.14 (2024/05/29)

  1. Fixed a memory access error crash caused by accessing a deallocated Class object in FTSwizzler.
  2. Fixed data consistency and operation conflict issues that could arise when NSDictionary parameters passed to the SDK are actually mutable objects.

1.4.13 (2024/05/15)

  1. Optimized RUM Long Task and ANR collection, fixed inaccurate Long Task stack trace collection, and added support for collecting fatal freezes.
  2. Fixed a crash in FTSwizzler caused by concurrent multi-threaded operations on NSMutableSet.
  3. Fixed the missing version information in the info.plist of the packaged SDK Framework.
  4. Fixed the failure to collect Resource performance metrics when a custom NSURLSession has no delegate set.
  5. Optimized the SDK's internal log-to-file functionality and added a method to specify the file path.

1.4.12 (2024/04/26)

  1. Fixed a memory leak caused by calling the SDK shutdown method shutDown.
  2. Fixed a crash caused by conflicts with other libraries during RUM Resource collection.
  3. Fixed the issue where the UncaughtExceptionHandler was not passed through 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: entries per request, synchronization interval, and log cache entry count.
  2. Added a method to write internal logs to files.
  3. Fixed errors in retrieving RUM data associated with logs.
  4. Optimized time-consuming operations.
  5. Fixed a crash caused by the WebView jsBridge by changing the WebView reference to a weak reference.

More Logs