반응형
아이폰 OS 잠금 활성화 여부 조회하는 방법
아이폰 OS 암호 및 생체인증(Touch ID 및 Face ID)이 등록되어있는지 조회하는 방법이다.
OS 잠금 활성화 여부 조회 시 헷갈리는 부분이 많으니 참고 사항을 꼭 읽어보길 바란다.
알고 나면 간단한 내용이지만, 아이폰을 사용하면서 가볍게 넘어갔다면 모를만한 내용이다.
OS 잠금 활성화란, OS 암호가 설정되어 있으며 사용이 가능한 상태를 말한다.
참고 사항
- 아이폰에서 암호는 기본 사항이고, 생체인증은 선택 사항이다.
암호와 생체인증이 모두 등록되지 않은 상태에서 'Touch ID(Face ID) 및 암호' 메뉴 진입하여
1) '암호 켜기'를 하면 암호 등록이 가능하다.
2) 하지만 '지문(Face) 추가...'를 하면 생체인증 추가 후 암호까지 등록해야만 생체인증이 추가된다. (암호 설정 시에 취소를 하면 생체인증 추가도 취소된다.)
쉽게 말해, 암호만 등록하는 것은 가능한데, 생체인증만 등록하는 것은 불가능하다. - '암호 끄기'를 해도 생체 인증 정보가 삭제되지 않는다.
암호 끄기 시, 암호 정보는 삭제되지만 생체 인증 정보는 삭제되지 않는다.
하지만, 암호가 등록되지 않은 상태이므로 잠금화면 설정이 불가능하며, 앱에서 잠금 활성화 여부 조회 시 불가능한 상태로 조회된다. - canEvaluatePolicy:error: 결과도 위 사항들이 반영된다.
- canEvalutePolicy:LAPolicyDeviceOwnerAuthentication: 호출 시 생체인증 등록 여부와 상관없이 암호가 등록되어 있다면 YES 리턴
- canEvalutePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics: 호출 시 생체인증과 암호가 모두 등록되어 있다면 YES 리턴 (생체인증은 등록되어 있으나 암호가 등록되어 있지 않다면 NO 리턴)
사용 API
canEvaluatePolicy:error:
파라미터는 암호와 생체(Touch ID or Face ID)에 맞춰 사용
- 암호: LAPolicyDeviceOwnerAuthentication
- 생체:LAPolicyDeviceOwnerAuthenticationWithBiometrics
사용 방법
#import <LocalAuthentication/LocalAuthentication.h>
LAContext* laContext = [[LAContext alloc] init];
NSError *error = nil;
if ([laContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthentication error:&error]) {
// 암호 등록 상태
} else {
// 암호 미등록 상태 또는 사용 불가 상태
}
if ([laContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
// 암호 및 생체인증 등록 상태
} else {
// 암호 또는 생체인증 미등록 상태 or 생체인증 사용 불가 상태
}
에러
에러는 비활성화 상태, 암호 미등록 상태 등 다양한 케이스가 있으므로, 아래 링크에서 확인한다.
developer.apple.com/documentation/localauthentication/laerror?language=objc
반응형
'iOS > Swift + Objective-c' 카테고리의 다른 글
[objective-c] 로그 편하게 사용하기 (NSLog) (0) | 2021.04.24 |
---|---|
[objective-c] 프로토콜 구현 여부 체크 (Protocol) (0) | 2021.04.20 |
[iOS] WKWebView content size mobile 사이즈에 맞추기 (0) | 2021.03.05 |
[iOS] 애드몹을 사용하는 앱을 앱스토어에 업로드 시 주의 사항 (AdMob) (0) | 2021.01.16 |
[iOS] TableView 빈 행 라인 숨기기 (hide empty table view rows) (0) | 2021.01.16 |