Summary
After UXCam iOS SDK 3.10.1 (released 13 Aug 2026) reaches an app, tap events
stop reaching content inside a WKWebView (flutter_inappwebview). The page
renders and scrolls normally, but buttons and links inside it no longer respond.
The rest of the Flutter UI is completely unaffected — navigation, buttons,
bottom sheets and lists all work. Only interaction inside the web view is
lost. Killing and relaunching the app does not help; disabling UXCam does.
Pinning the native pod back to 3.10.0 fixes it with no other change.
Environment
|
|
flutter_uxcam |
2.9.0 (held constant across the bisect) |
| UXCam iOS pod |
3.10.0 → works, 3.10.1 → broken |
flutter_inappwebview |
6.1.5 |
| Flutter |
3.41.6 (stable) |
| Platform |
iOS only — Android unaffected |
| Device / iOS version |
iPhone 16 Plus, iOS 26.6 |
UXCam initialisation:
FlutterUxcam.optIntoSchematicRecordings();
FlutterUxcam.occludeAllTextFields(true);
final config = FlutterUxConfig(
userAppKey: '<key>',
enableAutomaticScreenNameTagging: true,
);
await FlutterUxcam.startWithConfiguration(config);
No OccludeWrapper is present anywhere on the affected screen.
Bisect
flutter_uxcam stayed at 2.9.0 for both runs — the Dart side was byte
identical, the only variable was the native pod:
flutter_uxcam |
pod 'UXCam' |
Taps inside WKWebView |
| 2.9.0 |
3.10.0 |
✅ work |
| 2.9.0 |
3.10.1 |
❌ dead |
| 2.8.4 |
3.8.4 |
✅ work |
Switching between the two states is just:
# ios/Podfile
pod 'UXCam', '3.10.0' # vs '3.10.1'
followed by pod update UXCam. Verified against
Pods/UXCam/UXCam.xcframework/ios-arm64/UXCam.framework/Info.plist
(CFBundleShortVersionString) so there is no ambiguity about which binary was
actually linked.
Steps to reproduce
- Flutter app with
flutter_uxcam: 2.9.0 and flutter_inappwebview: 6.1.5.
- Start UXCam as above (a real app key — the SDK must actually record).
- Add
pod 'UXCam', '3.10.1' to ios/Podfile, pod update UXCam.
- Open any screen hosting an
InAppWebView with an HTML page that has a
clickable button.
- Run on a physical iOS device and tap the button inside the web view.
Expected: the button responds.
Actual: nothing happens. The page still scrolls, so the view is receiving
touches at the UIKit level — only the click never materialises.
Change the pin to 3.10.0, pod update UXCam, rebuild: the button works again.
Why this will hit other 2.9.0 users without them changing anything
flutter_uxcam 2.9.0's podspec declares:
s.dependency 'UXCam', '~> 3.10.0'
which admits any 3.10.x. Projects that do not commit Podfile.lock, or whose CI
regenerates it (a common setup — ours runs rm -rf Pods Podfile.lock && pod install), silently moved from 3.10.0 to 3.10.1 the moment it was published.
Same source, same plugin version, same commit — different native binary and a
broken app. There is no diff to point at, which made this unusually hard to
track down.
flutter_uxcam 2.9.1 pins UXCam ~> 3.10.1, so upgrading also lands on the
broken build.
Notes on the 3.10.0 → 3.10.1 delta
- 3.10.0's changelog is largely an occlusion/overlay rework ("occlusion masks
now apply correctly across all view hierarchies", "Occlusion placement mapping
for accurate mask positioning [MOB-1859]", window-level banners) — the
machinery that places views over other views was reworked recently.
- 3.10.1's changelog is entirely about session upload, queueing and disk usage,
with nothing about gestures, touch or occlusion — so this looks like an
unintended side effect rather than a deliberate behaviour change.
Workaround
# ios/Podfile
pod 'UXCam', '3.10.0'
plus pinning flutter_uxcam to an exact version so the plugin cannot float onto
a release whose podspec demands a newer pod.
Summary
After UXCam iOS SDK 3.10.1 (released 13 Aug 2026) reaches an app, tap events
stop reaching content inside a
WKWebView(flutter_inappwebview). The pagerenders and scrolls normally, but buttons and links inside it no longer respond.
The rest of the Flutter UI is completely unaffected — navigation, buttons,
bottom sheets and lists all work. Only interaction inside the web view is
lost. Killing and relaunching the app does not help; disabling UXCam does.
Pinning the native pod back to 3.10.0 fixes it with no other change.
Environment
flutter_uxcamflutter_inappwebviewUXCam initialisation:
No
OccludeWrapperis present anywhere on the affected screen.Bisect
flutter_uxcamstayed at 2.9.0 for both runs — the Dart side was byteidentical, the only variable was the native pod:
flutter_uxcampod 'UXCam'WKWebViewSwitching between the two states is just:
followed by
pod update UXCam. Verified againstPods/UXCam/UXCam.xcframework/ios-arm64/UXCam.framework/Info.plist(
CFBundleShortVersionString) so there is no ambiguity about which binary wasactually linked.
Steps to reproduce
flutter_uxcam: 2.9.0andflutter_inappwebview: 6.1.5.pod 'UXCam', '3.10.1'toios/Podfile,pod update UXCam.InAppWebViewwith an HTML page that has aclickable button.
Expected: the button responds.
Actual: nothing happens. The page still scrolls, so the view is receiving
touches at the UIKit level — only the click never materialises.
Change the pin to
3.10.0,pod update UXCam, rebuild: the button works again.Why this will hit other 2.9.0 users without them changing anything
flutter_uxcam2.9.0's podspec declares:which admits any 3.10.x. Projects that do not commit
Podfile.lock, or whose CIregenerates it (a common setup — ours runs
rm -rf Pods Podfile.lock && pod install), silently moved from 3.10.0 to 3.10.1 the moment it was published.Same source, same plugin version, same commit — different native binary and a
broken app. There is no diff to point at, which made this unusually hard to
track down.
flutter_uxcam2.9.1 pinsUXCam ~> 3.10.1, so upgrading also lands on thebroken build.
Notes on the 3.10.0 → 3.10.1 delta
now apply correctly across all view hierarchies", "Occlusion placement mapping
for accurate mask positioning [MOB-1859]", window-level banners) — the
machinery that places views over other views was reworked recently.
with nothing about gestures, touch or occlusion — so this looks like an
unintended side effect rather than a deliberate behaviour change.
Workaround
plus pinning
flutter_uxcamto an exact version so the plugin cannot float ontoa release whose podspec demands a newer pod.