venmo / VENTouchLock

A Touch ID and Passcode framework used in the Venmo app.
MIT License
964 stars 114 forks source link

Keyboard doesn't appear if Touch ID if "Enter Passcode" is selected after a failed attempt #85

Open gerardg opened 7 years ago

gerardg commented 7 years ago

Using iOS 10.2

  1. Enable TouchID
  2. Attempt to unlock with wrong finger
  3. Choose "Enter Passcode"
  4. Passcode screen appears without the keyboard.

Looking at the debug view hierarchy, it's just not there.

It seems to be a timing issue. If I insert a wait (a lame workaround, I know) in requestTouchIDWithCompletion in LAErrorUserFallback, it appears.

response = VENTouchLockTouchIDResponseUsePasscode; [NSThread sleepForTimeInterval: 0.001];

Not a great solution, but might help in tracking down a real one.

screen shot 2016-12-27 at 11 03 05 am screen shot 2016-12-27 at 11 03 38 am

screen shot 2016-12-27 at 11 13 06 am
Drag11 commented 7 years ago

I can confirm the issue after the same STRs. [NSThread sleepForTimeInterval: 0.001]; in my case is not enough,[NSThread sleepForTimeInterval: 0.5]; works good.

pouriaalmassi commented 7 years ago

I tested this on a device and can confirm the lack of keyboard presentation. However, interestingly the space where the keyboard would be does in fact receive touches and inputs the correct key values.