しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

iPhone Xの顔認証の実装について調べてみる

iPhone Xから顔認証が使えるようになるので、実装方法を調べてみました。
実機はないので、ドキュメントを見つつの調査です。

Face ID関連で追加されたAPI

ドキュメントを見たところLABiometryTypeというenumが追加されていました。

f:id:llcc:20170914142122p:plain

LABiometryType - LocalAuthentication | Apple Developer Documentation

LAContextにはLABiometryType型のbiometryTypeというプロパティーが追加されていました。

f:id:llcc:20170914142129p:plain

LAContext - LocalAuthentication | Apple Developer Documentation

こちらはread onlyのプロパティーなので、おそらくデバイス側で判断してサポートしているタイプをセットしてくれるのかと思います。

f:id:llcc:20170914142317p:plain

LAPolicyにもそれらしいものは追加されてなかったので、おそらく指紋認証と同じ方法になるかと思います。

import LocalAuthentication

class ViewController: UIViewController {
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        
        let context = LAContext()
        var error: NSError?
        if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
            context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "パスコードロックに使う") { success, error in
                
            }
        }
    }
}

【iOS】指紋認証を使ってみる - しめ鯖日記