Skip to content

fix(ios): use --booted flag for biometric commands on iOS 26+#4932

Open
SoaringEarth wants to merge 1 commit intowix:masterfrom
SoaringEarth:fix/ios26-biometric-commands
Open

fix(ios): use --booted flag for biometric commands on iOS 26+#4932
SoaringEarth wants to merge 1 commit intowix:masterfrom
SoaringEarth:fix/ios26-biometric-commands

Conversation

@SoaringEarth
Copy link
Copy Markdown

Description

Fixes #4931

On iOS 26, applesimutils changed its biometric command interface. The --byId <udid> --matchFace/--matchFinger/--unmatchFace/--unmatchFinger flags are no longer supported. The tool now requires --booted instead of --byId <udid>, and uses unified --biometricMatch / --biometricNonmatch flags rather than per-type variants.

This broke all three biometric methods in AppleSimUtils.js. This PR branches on iOS version (using the already-memoized _getMajorIOSVersion(udid)) to use the correct flags:

Method iOS < 26 iOS 26+
matchBiometric --byId <udid> --match{Face|Finger} --booted --biometricMatch
unmatchBiometric --byId <udid> --unmatch{Face|Finger} --booted --biometricNonmatch
setBiometricEnrollment --byId <udid> --biometricEnrollment --booted --biometricEnrollment

Expected Behaviour

Biometric simulation APIs (matchFace, matchFinger, unmatchFace, unmatchFinger, setBiometricEnrollment) work correctly on iOS 26+ simulators.

Steps to Reproduce

  1. Boot an iOS 26 simulator
  2. Run a Detox test that calls any biometric API (e.g. device.matchFace())
  3. Observe failure from applesimutils due to unrecognised flag

Environment

  • macOS 25.4.0 (Darwin)
  • Xcode 26.1.1
  • applesimutils (latest)
  • Detox 20.50.1

@SoaringEarth SoaringEarth requested a review from noomorph as a code owner April 20, 2026 08:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(ios): biometric commands broken on iOS 26+ (applesimutils interface change)

1 participant