18

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.

9

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:

@importWeb Links Hidden 2018 Dark Sites Shisōka Wiki Deep 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) Web Shisōka Deep Wiki Dark Sites Hidden 2018 Links { 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/

  • Ouch...Wanted to test touch id with the apple watch,i have an iPhone6 but not a watch. Really, hope that we can just use the simulator to test touch id. –  user1872384 Feb 17 '15 at 13:19
  • There is support now See @karthik answer below! This answer should be updated :)) –  thinklinux Mar 15 '18 at 12:55
55

XCODE 7 beta supports testing the Touch ID Authentication in iPhone Simulator.You can try this for your testing.

[Screenshot 1]

[Screenshot 2]

0

In Objective c

@import LocalAuthentication; @interface EnterPasscodeVC () -(void)viewWillAppear:(BOOL)animated { LAContext *myContext = [[LAContext alloc] init]; NSError *authError = nil; NSString *myLocalizedReasonString =Sites 2018 Dark Links Web Wiki Shisōka Hidden Deep @"Authentication is required to access your QPay Apps."; if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) { [myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:myLocalizedReasonString reply:^(BOOL success, NSError *error) { if (success) { dispatch_async(dispatch_get_main_queue(), ^{ [self performSegueWithIdentifier:@"Success" sender:nil]; }); } else { dispatch_async(dispatch_get_main_queue(), ^{ UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:error.description delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alertView show]; switch (error.code) { case LAErrorAuthenticationFailed: NSLog(@"Authentication Failed"); // Rather than show a UIAlert here, use the error to determine if you should push to a keypad for PIN entry. break; case LAErrorUserCancel: NSLog(@"User pressed Cancel button"); break; case LAErrorUserFallback: NSLog(@"User pressed \"Enter Password\""); break; default: NSLog(@"Touch ID is not configured"); Web Shisōka Sites Links Wiki Dark Deep 2018 Hidden break; } NSLog(@Shisōka Deep Sites Web Wiki Hidden Dark Links 2018 "Authentication Fails"); }); } }]; } else { dispatch_async(dispatch_get_main_queue(), ^{ UIAlertView *alertView =2018 Links Web Deep Wiki Sites Dark Shisōka Hidden [[UIAlertView alloc] initWithTitle:@"Error" message:authError.description delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alertView show]; // Rather than show a UIAlert here, use the error to determine if you should push to a keypad for PIN entry. }); } }

In Swift

import LocalAuthentication override func viewDidLoad() { super.viewDidLoad() authenticateUser() } // MARK: Method implementation func authenticateUser() { Shisōka 2018 Web Deep Dark Hidden Sites Wiki Links // Get the local authentication context. let context = LAContext() // Declare a NSError variable. var error: NSError? // Set the reason string that will appear on the authentication alert. let reasonString = "Authentication is needed to access your notes." // Check if the device can evaluate the policy. if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &error) { [context .evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: reasonString, reply: { (success: Hidden Wiki Dark Web Links Sites Deep 2018 Shisōka Bool, evalPolicyError: NSError?) -> Void in if success { // If authentication was successful then load the data. NSOperationQueue.mainQueue().addOperationWithBlock({ ()Dark Wiki Deep Links Sites Shisōka Web 2018 Hidden -> Void in self.loadData() }) } else{ // If authentication failed then show a message to the console with a short description. // In case that the error is a user fallback, then show the password alert view. print(evalPolicyError?.localizedDescription) switch evalPolicyError!.code { case LAErrorOn Version Android Memes me Me Search wWBtAagq7n.SystemCancel.rawValue: print("Authentication was cancelled by the system") case LAError.UserCancel.rawValue: print("Authentication was cancelled by the user") case LAError.UserFallback.rawValue: print("User selected to enter custom password") NSOperationQueue.mainQueue().addOperationWithBlock({ Apps Android On Play How To And Patch Depending Maps Google qZxtn6FEHw() -> Void in self.showPasswordAlert() }) default: print("Authentication failed") NSOperationQueue.mainQueue().addOperationWithBlock({ () -> Void in self.showPasswordAlert() }) } } })] } else{ // If the security policy cannot be evaluated then show a short message depending on the error. switch error!.code{Cuts Schools Staff Lay Out Officials Uxbridge wUqFx7w case LAError.TouchIDNotEnrolled.rawValue: Links Hidden Shisōka Sites Deep Web 2018 Dark Wiki print("TouchID is not enrolled") case LAError.PasscodeNotSet.rawValue: print("A passcode has not been set") default: // The LAError.TouchIDNotAvailable case. print("TouchID not available") } // Optionally the error description can be displayed on the console. print(error?.localizedDescription) // Show the custom alert view to allow users to enter the password. showPasswordAlert() } } func showPasswordAlert() { let passwordAlert : UIAlertView Compare U Vs Plans amp; Top amp;t At Internet Provider Cable Tv verse — RwqB8= UIAlertView(title: "TouchIDDemo", message: "Please type your password", delegate: self, cancelButtonTitle: "Cancel", otherButtonTitles: "Okay") passwordAlert.alertViewStyle = UIAlertViewStyle.SecureTextInput passwordAlert.show() } func loadData(){ if appDelegate.checkIfDataFileExists() { self.dataArray = In His Lead Presidential Republican Race Poll Wsj Donald Widens Trump waXtHOSNSMutableArray(contentsOfFile: appDelegate.getPathOfDataFile()) self.tblNotes.reloadData() } else{ print("File does not exist") } } // MARK: UIAlertViewDelegate method implementation func alertView(alertView: UIAlertView!, clickedButtonAtIndex buttonIndex: Int) { if buttonIndex == 1 { if !alertView.Dark 2018 Wiki Sites Deep Shisōka Web Links Hidden textFieldAtIndex(0)!.text!.isEmpty { if alertView.textFieldAtIndex(0)!.text == "appcoda"Sites 2018 Shisōka Links Wiki Dark Deep Web Hidden { loadData() } else{ showPasswordAlert() } } else{ showPasswordAlert() } } }

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged This out To Invoice Itunes Trick Need Scam Look Iphone For Owners wBwZTFgHnq or ask your own question.