Notice
Recent Posts
Recent Comments
Link
투케이2K
596. (ios/swift5) [간단 소스] LAError 간단 설명 및 사용 옵션 정리 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT5
[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Swift
- 개발 툴 : Xcode
- 기술 구분 : LAError / Error Code
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[설명 정리]
// --------------------------------------------------------------------------------------
1. LAError 은 LocalAuthentication 프레임워크에서 발생한 오류 에러 코드입니다
2. LAError 사용 가능 지원 범위 :
>> iOS 8.0 이상
>> 아이패드OS 8.0 이상
>> 맥 카탈리스트 13.1+
>> 맥OS 10.10+
>> 비전OS 1.0+
>> 워치OS 3.0+
3. LAError 오류 특성 :
>> static var errorDomain: String : 오류의 기본 도메인입니다.
>> let LAErrorDomain: String : 프레임워크가 오류를 발행할 때 사용하는 오류 도메인입니다.
>> var localizedDescription: String : 이 오류에 대한 지역화된 설명을 검색합니다.
4. LAError 오류 코드 :
>> static var appCancel: LAError.Code : 앱이 인증을 취소했습니다.
>> static var systemCancel: LAError.Code : 시스템이 인증을 취소했습니다.
>> static var userCancel: LAError.Code : 사용자가 인증 대화 상자에서 취소 버튼을 탭했습니다.
>> static var biometryDisconnected: LAError.Code : 이 장치는 분리형 액세서리를 사용해서만 생체 인식을 지원하지만, 페어링된 액세서리가 연결되어 있지 않습니다.
>> static var biometryLockout: LAError.Code : 생체 인식 기능이 잠겼습니다. 실패한 시도가 너무 많았기 때문입니다.
>> static var biometryNotAvailable: LAError.Code : 이 장치에서는 생체 인식 기능을 사용할 수 없습니다.
>> static var biometryNotEnrolled: LAError.Code : 사용자에게 등록된 생체 인식 정보가 없습니다.
>> static var biometryNotPaired: LAError.Code : 이 장치는 분리형 액세서리를 사용해서만 생체 인식을 지원하며, 액세서리는 페어링되지 않았습니다.
>> static var authenticationFailed: LAError.Code : 사용자가 유효한 자격 증명을 제공하지 못했습니다.
>> static var invalidContext: LAError.Code / static var invalidDimensions: LAError.Code : 이전에 컨텍스트가 무효화되었습니다.
>> static var notInteractive: LAError.Code : 필수 인증 사용자 인터페이스를 표시하는 것은 금지되어 있습니다.
>> static var passcodeNotSet: LAError.Code : 장치에 암호가 설정되어 있지 않습니다.
>> static var userFallback: LAError.Code : 사용자가 인증 대화 상자에서 폴백 버튼을 탭했지만 인증 정책에 대한 폴백을 사용할 수 없습니다.
5. LAError 사용 예시 소스 코드 :
@available(iOS 11.0, *) // [특정 IOS 버전 이상 사용 가능]
private func biometricError(from nsError: NSError) -> (Int, String) {
var retry = 0 // 재실행 여부
var error = "" // 에러 메시지
switch nsError {
// MARK: [생체 인증에 실패하였습니다. 재실행하시겠습니까?]
case LAError.authenticationFailed:
retry = 1
error = "생체 인증에 실패하였습니다. 재실행하시겠습니까?"
// MARK: [생체 인증 동작을 취소하였습니다. 재실행하시겠습니까?]
case LAError.userCancel:
retry = 1
error = "생체 인증 동작을 취소하였습니다. 재실행하시겠습니까?"
// MARK: [생체 인증 기능이 필요합니다. 재실행하시겠습니까?]
case LAError.userFallback:
retry = 1
error = "생체 인증 기능이 필요합니다. 재실행하시겠습니까?"
// MARK: [기기에서 생체 인식을 사용할 수 없습니다. 권한을 거부하신 경우 확인해주세요.]
case LAError.biometryNotAvailable:
retry = 0
error = "기기에서 생체 인식을 사용할 수 없습니다. 권한을 거부하신 경우 확인해주세요."
// MARK: [등록된 생체 인식 ID가 없습니다. 생체 인증 등록 후 사용해 주세요.]
case LAError.biometryNotEnrolled:
retry = 0
error = "등록된 생체 인식 ID가 없습니다. 생체 인증 등록 후 사용해 주세요."
// MARK: [생체 인증 사용 잠금 (LOCK) 상태입니다. 디바이스에 등록된 생체 인증을 확인 후 다시 실행해주세요.]
case LAError.biometryLockout:
retry = 0
error = "생체 인증 사용 잠금 (LOCK) 상태입니다. 디바이스에 등록된 생체 인증을 확인 후 다시 실행해주세요."
// MARK: [생체 인증 기능 동작이 취소되었습니다. 잠시후 다시 실행해주세요.]
case LAError.appCancel:
retry = 0
error = "생체 인증 기능 동작이 취소되었습니다. 잠시후 다시 실행해주세요."
// MARK: [생체 인증에서 일시적인 문제가 발생하였습니다.]
default:
retry = 0
error = "생체 인증에서 일시적인 문제가 발생하였습니다."
}
return (retry, error)
}
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
https://developer.apple.com/documentation/localauthentication/laerror-swift.struct
// --------------------------------------------------------------------------------------
반응형
'IOS' 카테고리의 다른 글
Comments