New in CUX: Mobile Analytics. Analyze real user behavior inside your app. Learn More

iOS SDK 1.1.0 Changelog

iOS SDK 1.1.0 Changelog

Browse topics

On this page

iOS SDK 1.1.0 — 2026-04-21

New features

  • pauseScreenshots() / resumeScreenshots() — suspend screenshot capture for KYC, payment, and authentication screens without stopping touch or navigation tracking. Use areScreenshotsPaused() to check the current state.
  • Keyboard tracking — keyboardVisible and keyboardHidden events emitted automatically from system keyboard notifications.
  • Long press & UISwitch — longClick events for long presses on interactive views; change events for UISwitch toggles.
  • SwiftUI UIHostingController auto-tracking — screen names are derived automatically from hosted view type names; .trackScreen(name:) still takes precedence when applied.
  • Self-health telemetry — SDK internal errors are reported as internalErrorLog; uncaught NSException metadata is captured locally and replayed on next launch. Enabled by default; opt out via enableSelfHealthTelemetry: false in setup().
  • Screenshot screen name — screenshots now include the current screen name in activityName / fragmentsNames instead of sending empty values.
  • Privacy manifest — PrivacyInfo.xcprivacy is bundled inside the XCFramework.

Improvements

  • setup() is now idempotent — repeated calls with the same token will not register duplicate lifecycle or orientation observers.
  • iOS auto-masking now also heuristically redacts PIN/OTP-style UILabel text containing numeric codes alongside sensitive keywords.
  • UIKit masking now resolves each masked view's current presentation-layer rect, clipping to scrolling ancestors and the active window — reduces mask drift during animations and partial visibility.
  • SwiftUI .maskElement() installs a hidden UIKit tracking view so screenshot masking resolves the live rendered rect at capture time.
  • UIKit automatic screen tracking now filters generic UIViewController instances and skips child controllers of custom container VCs to reduce event noise.
  • Offline queues now flush in bounded batches on reconnect instead of dumping all queued payloads at once.

Bug fixes

  • SwiftUI .trackScreen(name:) no longer renders the tracked content twice.
  • Token change mid-session now clears buffered events and screenshots before reconnecting, preventing replay under a different project.