What's Changed
Features
- Support obfuscated keys in precomputed Flags assignments without changing evaluation calls or telemetry keys. The preview snapshot API returns
nilfor obfuscated assignments. #3267 - Add
spanCustomizationtoTrace.Configuration.URLSessionTrackingto customize spans created for intercepted network requests, for example to add request-based tags. #2741
Fixes
- Prevent incorrect RUM session expiration caused by device clock changes or cross-platform timestamp differences. #3288
- Keep automatic URLSession spans linked to the RUM view and session captured when each request starts. #3220
- Reduce the risk of SwiftUI crashes during Session Replay recording by avoiding copies of unrelated view cache data. See #3245
- Ensure repeated or concurrent URLSession task resumes apply request customization and start tracking only once per SDK instance. #3215
- Report failed URLSession body transfers as network errors with their received HTTP status, and keep late Resource completions from changing another view's action counters. #3218
Improvements
- Flags: Report
CACHEDfor disk-restored assignments and use that effective reason for evaluation telemetry (thanks @typotter). #3268 - Include the application build number (
CFBundleVersion) in trace spans asbuild_version. #3286 - Stop resolving
dd-sdk-swift-testingwhen integrating the SDK through Swift Package Manager. #3282 - Stop uploading RUM view update events that a newer full view event in the same batch already covers. This reduces view update payload size. #3285
Full Changelog: 3.19.0...3.20.0