Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iPhone 5s Touch ID sensor API [closed]

After a lot of rumors, Apple has announced the new iPhone 5s will have a biometric fingerprint sensor (Touch ID).

Has apple already released the API/SDK for this sensor? If so, can an example be provided?

like image 833
Niv Avatar asked Sep 10 '13 20:09

Niv


People also ask

Why has Touch ID stopped working on iPhone 5S?

Make sure that you have the latest version of iOS or iPadOS. Make sure that your fingers and the Touch ID sensor are clean and dry. * For the Touch ID sensor, use a clean, lint-free cloth to wipe off any dirt or debris. Your finger should cover the Touch ID sensor completely, touching the surrounding metal ring.

Is Touch ID available on iPhone 5S?

The fingerprint sensor feature on the iPhone 5S, called Touch ID, is a convenient security tool that makes it easier to unlock the iPhone, compared to using a 4-digit PIN code. It also allows purchases from iTunes and the App Store without having to type in your Apple ID password.

Can iPhone Touch ID be fixed?

Go to Settings > Touch ID & Passcode > Touch ID > Edit. From here you can delete a fingerprint, then follow the instructions to add a new fingerprint. This will replace the old print. To find the faulty fingerprint hold your finger over the scanner and see which of the recorded fingerprints are not highlighted.


1 Answers

Update iOS >= 8

As of iOS 8, the old part of this answer is no longer true. Apple has introduced the Local Authentication Framework, which allows you to utilize Touch ID in your applications

Quote + Sample code (Local Authentication Framework Reference)

The Local Authentication framework provides facilities for requesting authentication from users with specified security policies. For example, to request that the user authenticate using Touch ID you would use code such as this:

LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
NSString *myLocalizedReasonString = <#String explaining why app needs authentication#>;

if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
    [myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                  localizedReason:myLocalizedReasonString
                            reply:^(BOOL succes, NSError *error) {
            if (success) {
                // User authenticated successfully, take appropriate action
            } else {
                // User did not authenticate successfully, look at error and take appropriate action
            }
        }];
} else {
    // Could not evaluate policy; look at authError and present an appropriate message to user
}

Old answer iOS < 7

From the September 10, 2013 keynote approximately 61 minutes into the presentation:

All fingerprint info is encrypted and stored inside the secure enclave in our new A7 chip. Here, it is locked away from everything else, accessible only by the Touch ID sensor. It’s never available to other software, it’s never stored on Apple’s servers or backed up to iCloud.

As of yet, this is all the information that is available. That being said, this is speculation, but I think it's likely that there won't be an API for this. If anything, usage of the sensor, will only be done through interaction with the keychain allowing the OS to interact with the sensor, while keeping your app separate in its cozy little sandbox.

EDIT:

It looks like it's true that we can't access the sensor. Here's a quote from an ALLThingsD article (linked below).

Apple Senior Vice President Phil Schiller confirmed to AllThingsD that developers won’t get access to use a fingerprint as a means of authentication. He declined to comment on whether that might come in the future.

http://allthingsd.com/20130910/iphone-developers-wont-get-fingerprint-reader-authentication-option-for-now-anyway/

like image 87
Mick MacCallum Avatar answered Oct 19 '22 00:10

Mick MacCallum