반응형
새롭게 진행되는 프로젝트에 Face ID와 Touch ID 기능이 존재해서 프로젝트 시작 전 해당 기능을 구현해 보는 시간을 가졌는데,
일단 생각보다 기능 구현 자체는 매우 간단해 놀랐다
우선, 다음과 같이 프로젝트에 LocalAuthentication 프레임워크를 추가해준다.
그리고 ViewController에는 버튼 하나를 만들어 해당 버튼을 클릭했을 때 Touch Id, Face Id를 동작하도록 했다. (시뮬레이터에서는 Touch Id만 동작)
ViewController의 코드는 다음과 같다.
import UIKit
import LocalAuthentication
import SnapKit
import Then
class ViewController: UIViewController {
private lazy var testButton = UIButton().then({
$0.setTitle("테스트", for: .normal)
$0.addTarget(self, action: #selector(testButtonIsTapped(_:)), for: .touchUpInside)
})
let authContext = LAContext()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .yellow
addViews()
makeConstraints()
}
private func addViews() {
view.addSubview(testButton)
}
private func makeConstraints() {
testButton.snp.makeConstraints { constraints in
constraints.centerY.equalToSuperview()
constraints.leading.trailing.equalToSuperview()
constraints.height.equalTo(50)
}
}
@objc func testButtonIsTapped(_ button: UIButton) {
authContext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics,
localizedReason: "인증 드가자") { (success, error) in
print("인증 결과", success, error)
}
}
}
단순히 ViewController에 버튼 하나가 존재하는 화면이며, 해당 버튼 클릭 시 휴대폰 기종에 따라 Face ID, Touch ID가 실행된다.
그러나 아마 시뮬레이터로 테스트하는 경우 Touch Id를 설정하지 않았거나, 실제 기기에서 Touch Id, Face Id를 설정하지 않았다는 등의 사유로 에러가 발생하게 될텐데, 이 경우 다음 링크를 통해 해결하면 될 것 같다.
참고링크:
[iOS] Face ID, Touch ID 구현하기
앱등이로서 앱을 쓰다보면 많이 적용되어 있어서 굉장히 친숙한 Face ID, Touch ID. 그런데 정작 난 개발자로서 그게 어떤 과정으로 동작하는지 모른다. 반성하며... 이제라도 파보고 잊지 않으려고
maart.tistory.com
반응형
'iOS 개발' 카테고리의 다른 글
[iOS 개발] OAuth 2.0이란? (3) | 2023.11.15 |
---|---|
[iOS 개발] UserDefaults, KeyChain이란? (0) | 2023.11.10 |
[iOS 개발] Tuist Static Framework vs Dynamic Framework (0) | 2023.10.26 |
[iOS 개발] Library not loaded: @rpath/Swinject-Dynamic.framework/Swinject-Dynamic 오류 해결 (0) | 2023.10.25 |
[iOS 개발] TDD 정의 및 장단점 (3) | 2023.09.30 |