Search code examples
iosios7xcode5fingerprint

IOS Fingerprint implementation


Since Apple has release Xcode 5 which features FingerPrint scanning in iOS 7, Can we implement this in our app? if yes which SDK do we use for implementation.

Please provide a sample code or else specify which SDK do we use.


Solution

  • It can be achieved by using LAContext(Local Authentication framework) which can be use to evaluate a security policy.It checks, using the Touch ID sensor, that the person authenticating is the device owner. In the future there may be other security policies.

    Here is the code snippet for the same:

    -(void)handlerForFingerTouch{
       LAContext *context = [[LAContext alloc] init];
    
       NSError *error = nil;
       if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
           [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                   localizedReason:@"Are you the device owner?"
                             reply:^(BOOL success, NSError *error) {
    
               if (error) {
                   UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                                   message:@"There was a problem verifying your identity."
                                                                  delegate:nil
                                                         cancelButtonTitle:@"Ok"
                                                         otherButtonTitles:nil];
                   [alert show];
                   return;
               }
    
               if (success) {
                   UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success"
                                                                   message:@"You are the device owner!"
                                                                  delegate:nil
                                                         cancelButtonTitle:@"Ok"
                                                         otherButtonTitles:nil];
                   [alert show];
    
               } else {
                   UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                                   message:@"You are not the device owner."
                                                                  delegate:nil
                                                         cancelButtonTitle:@"Ok"
                                                         otherButtonTitles:nil];
                   [alert show];
               }
    
           }];
    
       } else {
    
           UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                           message:@"Your device cannot authenticate using TouchID."
                                                          delegate:nil
                                                 cancelButtonTitle:@"Ok"
                                                 otherButtonTitles:nil];
           [alert show];
    
       }
    }