LAContext evaluatePolicy not showing TouchID prompt

We are using LAContext evaluatePolicy API to show the TouchID prompt in our App.

  • If we place our finger for authentication, then we can see the TouchID prompt and it completes the authentication.
  • What's even more strange is that when we can't see the pop-up window, then shake the device can make it appear.


😐


A simple project with code below:

#import "ViewController.h"
#import 
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
}
- (void)viewDidAppear:(BOOL)animated{
    dispatch_async(dispatch_get_main_queue(), ^{
        LAContext *context = [[LAContext alloc] init];
        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"xxxx" reply:^(BOOL success, NSError *error) {
            dispatch_async(dispatch_get_main_queue(), ^{
                NSLog(@"Verify successful");
            });
        }];
    });
}
@end




iPhone 6s

iOS 13-beta6

iOS 13-bata1 same behavior

iOS 13-beta5 same behavior

Replies

I think you're right. I used to be able to reproduce it very easily but now the prompt seems to show every time.

Seems to still be fixed in 13.2 beta 2 (iPhone 7 Plus), mentioning it because in this thread I saw some indication that it once was fixed and then the bug returned

It isn't mentioned in the release notes, but I can't reproduce this bug in iOS 13.1.3 (17A878). Can you?

Not able to reproduce in iOS 13.1.3

I have this problem when calling SecKeyCreateDecryptedData on iOS 13.1.2, testing on an iPhone 6s+. TouchId actually works, just doesn't show a prompt (the prompt is shown for a quarter of a second when you use TouchId). And the prompt appears when you shake the phone, which is hilarious, but not really helpful.


The workaround calling evaluatePolicy: works for me. I hope it gets fixed in iOS 13.2, because I only do the workaround when running on iOS 13 before 13.2.

Any other confirmations regarding iOS 13.1.3?