On this page
Check the installation, initialization and recorded test journey to find where your iOS integration stops working. Use synthetic data. A successful build alone does not confirm data delivery.
Version covered: 1.1.11. Requires iOS 15 or later.
The SDK does not resolve or build
Use one installation method per target. Check the exact version, selected product, app target and iOS deployment target against the installation guide.
For Swift Package Manager, resolve the package in Xcode. For CocoaPods, run pod install and open the generated workspace. If Xcode cannot load the binary module, record the toolchain version and error before changing distributions or SDK versions.
No recording appears
Check the mobile project token without printing or sharing it. Confirm that your startup path calls setup() once. If you use needConfirmToStart: true, check that the consent handler calls resumeCollectingData() when collection is allowed.
Use isCollectingData() to check collection state, then run a short journey and inspect the matching mobile project in CUX. The state check alone does not confirm delivery.
Screen names are missing
Compare the recorded UIKit view-controller sequence with your actual navigation. For SwiftUI, add .trackScreen(name:) to the actual destination, using a stable name without customer data.
Check the initial destination, Back navigation, modal presentation and the current screen after collection resumes. Follow the screen tracking guide rather than copying Android's screen API.
Users or events are missing
Call setUserProperties(userId:params:) after the app knows the active account. Call trackEvent(eventName:params:label:) when it confirms the outcome. Parameters use string keys and values.
Check initialization and collection state. Run the users and events verification with synthetic accounts. Check repeated callbacks and account switching separately.
Sensitive content is visible
Register UIKit masks with maskUIView(view:) before capture. Apply .maskElement() to sensitive SwiftUI content. Check custom views, overlays and reused cells after layout changes.
Use areScreenshotsPaused() to check screenshot-pause state. Screenshot pause does not stop other collection and does not filter event or identity values. Review the collection and masking guide.
Screenshots are missing
Check whether screenshots are paused and whether your app resumes capture after a sensitive flow. Run the same short journey again after collection is allowed. Screenshot availability depends on configuration and capture conditions.
The Android WebView bridge and preview-stitching recipes do not establish support in iOS 1.1.11. Do not use them as a fix for missing iOS screenshots.
Prepare a support report
Include the SDK version, installation method, Xcode/toolchain version, iOS version, affected UIKit or SwiftUI flow and steps to reproduce with synthetic data. Describe the expected result and what appears in CUX.
Do not share project tokens, credentials or customer data.