Search code examples
iosiphoneios-simulatorios8touch-id

Is there any way to use apple's Touch ID (fingerprint scanner) on iOS Simulator?


I am working on an app which would require Touch ID Authentication, so is there any way i can use Touch ID (fingerprint scanner) in the simulator ?

Also, please do share some kind of example code for using LocalAuthentication framework.


Solution

  • As of Xcode 7 the Simulator supports 'touchID'. Answer below contains further info.

    As of the latest beta (6) there is no way to simulate a fingerprint scan on the simulator. To be honest I doubt this will be included even in later betas.

    You will need to test on device.

    To use the Authentication framework right now you need:

    • Xcode 6
    • iPhone 5s with iOS 8

    The steps you need to perform are:

    Find out whether the device supports fingerprint validation and whether a fingerprint is enrolled:

    @import LocalAuthentication;
    
    // Get the local authentication context:
    LAContext *context = [[LAContext alloc] init];
    
    // Test if fingerprint authentication is available on the device and a fingerprint has been enrolled.
    if ([context canEvaluatePolicy: LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil])
    {
        NSLog(@"Fingerprint authentication available.");
    }
    

    Validate a fingerprint only:

    [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"Authenticate for server login" reply:^(BOOL success, NSError *authenticationError){
        if (success) {
            NSLog(@"Fingerprint validated.");
        }
        else {
            NSLog(@"Fingerprint validation failed: %@.", authenticationError.localizedDescription);
        }
    }];
    

    Validate a fingerprint or the device’s passcode depending on the user’s choice: This is a little beyond the scope of a question here, please find more information at: https://www.secsign.com/fingerprint-validation-as-an-alternative-to-passcodes/