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

iOS SDK 1.1.1 Changelog

iOS SDK 1.1.1 Changelog

Browse topics

On this page

iOS SDK 1.1.1 — 2026-05-05

New in this release

  • pauseScreenshots() / resumeScreenshots() — pause screenshot capture for KYC, payment, and authentication screens without stopping touch or navigation tracking. Check the current state with areScreenshotsPaused().
  • Keyboard events — keyboardVisible and keyboardHidden emitted automatically from system keyboard notifications.
  • Long press & UISwitch — longClick fired 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:) overrides when applied.
  • Self-health telemetry — SDK internal errors reported as internalErrorLog; uncaught NSException metadata captured locally and replayed on next launch (enabled by default, opt out via enableSelfHealthTelemetry: false).
  • Screenshot screen name — screenshots now carry the current screen name in activityName / fragmentsNames.
  • Privacy manifest — PrivacyInfo.xcprivacy is bundled inside the XCFramework.

Improvements

  • setup() is now idempotent — repeated calls with the same token no longer register duplicate observers.
  • Auto-masking now heuristically redacts PIN/OTP-style UILabel text with sensitive keywords alongside digits.
  • UIKit masking resolves each view's live presentation-layer rect clipped to scrolling ancestors — reduces mask drift during animations.
  • SwiftUI .maskElement() installs a hidden UIKit tracking view so masking uses the live rendered rect at screenshot capture time.
  • UIKit screen tracking now filters generic UIViewController instances and skips children of custom container VCs.
  • Offline queues flush in bounded batches on reconnect instead of dumping all payloads at once.