iDev/iOS Dev

Touch ID/Passcode 적용하기

KraZYeom 2016. 1. 23. 21:15
반응형

난이도: 하


@available(iOS 8.0, *) DeviceOwnerAuthenticationWithBiometrics


@available(iOS 9.0, *) DeviceOwnerAuthentication


앱에 잠금을 하기 위해서 예전에는 직접 구현을 하거나 오픈소스를 가져다 쓰는 등으로 구현을 했었는데 iOS 8.0과 9.0에서 LocalAuthentication 라이브러리를 통해서 Touch ID와 Passcode를 지원하고 있다.


8.0에서는 Touch ID를 이용한 것만 지원하니 8.0에서 Passcode를 지원하려면 오픈소스를 가져다 쓰는게 좋긴하다.


Add Library

Project > Targets > Build Phases > Link Binary with Libraries > + > LocalAuthentication.framework 



사용방법

// 1.
if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthentication, error: &error) { 
// 2.
  context.evaluatePolicy(.DeviceOwnerAuthentication, localizedReason: "Authentication is required for access",
    reply: {
      (success: Bool, error) in
        if success {
          print("success")
        }
    }
  )
}
  1. 디바이스가 DeviceOwnerAuthentication을 지원하는지 검사한다. .DeviceOwnerAuthentication를 적용하면 Touch ID가 기본적용 되며, 실패시 PassCode를 입력 가능하다. 
  2. 지원을 하면 실행을 해서 한다. 성공 값이 Bool으로 반환된다. 


Passcode를 여러번 틀리면 알아서 1분 지연을 시켜준다. 그 이후에 또 실패를 하면 5분 등으로 추가적으로 시간이 더 지연된다.




반응형