UIKit tracking
CimkaUIKit tracks taps, screens and view-controller lifecycle without any per-screen code.
.product(name: "CimkaUIKit", package: "cimka-sdk-ios")import CimkaCoreimport CimkaUIKit
Cimka.initialize()CimkaUIKit.register()What is tracked
Section titled “What is tracked”Clicks
Section titled “Clicks”Cimka swizzles UIWindow.sendEvent(_:) and, on each tap, finds the view under the finger and walks up to the nearest control. Each interaction records:
- accessibility identifier, view class, text and accessibility label
- the view-hierarchy path and the owning view controller
- touch coordinates
For text fields, the text is logged as *** when clickLogger.maskSensitiveInputs is true (the default). Secure text fields are always masked.
Screens
Section titled “Screens”View controllers are logged on viewDidAppear using the class name without the ViewController/Controller suffix — CheckoutViewController → Checkout. Container controllers (UINavigationController, UITabBarController, UIPageViewController, UISplitViewController) are skipped.
Lifecycle
Section titled “Lifecycle”screen_enter on viewDidAppear and screen_exit on viewWillDisappear.
Excluding views
Section titled “Excluding views”Never log taps on a view (for example a PIN pad) — the exclusion applies to the view and its subviews:
pinPadView.cimkaMasked = true