fix(ios): drive simulator biometrics through notifyutil - #2981
Conversation
There was a problem hiding this comment.
All reported issues were addressed across 4 files
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
|
CI note: the Smoke Tests failure on this head is the fixture E2E step timing out at |
No shipped Xcode has a simctl biometric subcommand, so every faceid and touchid setting failed as unsupported. Post the BiometricKit_Sim match and nomatch notifications and flip enrollmentChanged through simctl spawn notifyutil, the route Simulator.app's Features menu uses.
…ollment back Apple TV and Vision Pro simulators pass the kind-only simulator gate but never observe BiometricKit_Sim, so a post there exited 0 and reported an update that changed nothing. Enroll and unenroll now read the enrollmentChanged state back and fail when it did not flip.
84e0e7f to
635a3e3
Compare
There was a problem hiding this comment.
All reported issues were addressed across 4 files (changes from recent commits).
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
|
The code is ready as of 635a3e3. Smoke Tests failing in the "Restore and build iOS XCTest runner" step is unrelated: it fails on the toolchain probe |
|
Reviewed at 7134de4. The only change since 635a3e3 is a one-line rewording of The failing Smoke Tests job times out in Not blocking: |
Summary
settings faceid|touchid <match|nonmatch|enroll|unenroll>ranxcrun simctl biometric ...in several argument orders. No shipped Xcode has that subcommand (Xcode 26.6:Unrecognized subcommand: biometric), so every call failed asUNSUPPORTED_OPERATIONand the error-text sniff that classified it hid the cause.The setting now posts the same notifications the Simulator.app Features menu posts, through
simctl spawn <udid> notifyutil:-p com.apple.BiometricKit_Sim.<pearl|fingerTouch>.<match|nomatch>-s com.apple.BiometricKit.enrollmentChanged <1|0> -p com.apple.BiometricKit.enrollmentChangedOne command per action, no argument-order retries, no message sniffing; a failed post is
COMMAND_FAILEDwith the attempted argv indetails.attempts. Docs note the route.Touched:
app-settings.ts, its unit test, the managed-runtime provider scenario,commands.md(4 files).Validation
Tested commit
7134de457(rebased on 34f2eb1; review follow-up: iPhone/iPad leaf refusal and enrollment read-back).pnpm check:affected --run: passed.settings faceid enrollthenxcrun simctl spawn <udid> notifyutil -g com.apple.BiometricKit.enrollmentChangedreads1;unenrollreads0;faceid match,touchid nonmatchreturnUpdated setting;faceid toggleis refused asINVALID_ARGSbefore anything is spawned.