iOS8から導入されたLocalAuthenticationを使ってTouchID(指紋認証)でセキュリティを設定する方法をメモ
##LocalAuthenticationを追加
import LocalAuthentication
##Touch IDに対応している端末かどうかをチェック
let context = LAContext()
var error :NSError?
if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &error){}
##Touch ID認証時の分岐処理
let localizedReason = "認証する理由を入力"
context.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: localizedReason, reply: {
success, error in
if success {
NSLog("認証成功")
} else {
switch error.code {
case LAError.AuthenticationFailed.rawValue:
NSLog("認証失敗")
case LAError.UserCancel.rawValue:
NSLog("キャンセル")
case LAError.UserFallback.rawValue:
NSLog("パスコードを入力を選択")
case LAError.PasscodeNotSet.rawValue:
NSLog("パスコードが設定されていない")
case LAError.SystemCancel.rawValue:
NSLog("システムによってキャンセルされた")
default:
NSLog("不明なエラー")
return
}
}
})
##コード
import UIKit
import LocalAuthentication
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func TouchIdButtomPressed(sender: AnyObject) {
let context = LAContext()
var error :NSError?
let localizedReason = "認証する理由を入力"
if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &error){
//TocuhIDに対応している場合
context.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: localizedReason, reply: {
success, error in
if success {
NSLog("認証成功")
} else {
switch error.code {
case LAError.AuthenticationFailed.rawValue:
NSLog("認証失敗")
case LAError.UserCancel.rawValue:
NSLog("キャンセル")
case LAError.UserFallback.rawValue:
NSLog("パスコードを入力を選択")
case LAError.PasscodeNotSet.rawValue:
NSLog("パスコードが設定されていない")
case LAError.SystemCancel.rawValue:
NSLog("システムによってキャンセルされた")
default:
NSLog("不明なエラー")
return
}
}
})
}else{
//TocuhIDに対応していない場合
NSLog("TourchIDに対応してない")
}
}
}
##結果
##TouchIDが利用可能なアプリ
他にもTouchIDに対応しているアプリがあれば教えて下さいー。