github DataDog/dd-sdk-ios 3.21.0
Release 3.21.0

4 hours ago

What's Changed

Features

  • Flags: Add retained first-flags client events with per-registration cancellation. See #3269
  • Add experimental client-side APM stats, enabled with Trace.Configuration.featureFlags[.clientSideStats], or with client_side_stats in DDTraceConfiguration.featureFlags from Objective-C. The SDK aggregates request counts, error counts and latency distributions on-device from eligible finished spans, independently of trace upload sampling. Disabled by default. See #3301

Fixes

  • Stop attributing crashes to a RUM session stopped with stopSession(). Before, with background events tracking enabled, a crash in the background after the stop was reported into the stopped session. See #3321
  • Stop reporting slow frames and slow rendering for RUM views on macOS and watchOS, where rendering is not measured yet. See #3319
  • Prevent crashes when recording certain SwiftUI views with Session Replay's compositionTreeRecording feature on iOS 17 and earlier. See #3330
  • Start the DatadogFlags assignments request without waiting for the initial cache read, and report successful assignments before cache persistence. See #3078
  • NSPrivacyAccessedAPICategoryFileTimestamp added to DatadogCore's privacy manifest as required. See #3339
  • Attribute a TTFD vital reported before the TTID is written to the view and connectivity active when reportAppFullyDisplayed() was called, instead of the TTID's view. See #3317. (Thanks @thedavidharris)
  • Fix profile sample timestamps after device sleep and stop attaching app hangs and long tasks that the profile did not sample. See #3342

Improvements

  • Track RUM events and crashes on macOS when no view is active, for example after the last window closes or in a menu bar app. See #3351
  • Add support for unreal source for cross-platform RUM events from Unreal Engine applications. See #3353
  • Overlapping FlagsClient.setEvaluationContext calls no longer let an earlier result replace assignments for a newer context. Earlier calls still complete, and listeners skip state notifications superseded before delivery. Fetch-result completions run on a global utility queue. See #3078
  • Keep capturing HTTP headers that fit after one exceeds the 2 KB limit. See #3332
  • Reduce image resource sizes with WebP encoding and speed up image hashing in Session Replay's experimental composition tree recorder. See #3336

Full Changelog: 3.20.0...3.21.0

Don't miss a new dd-sdk-ios release

NewReleases is sending notifications on new releases.