에러(error)
Use of undeclared identifier 'kSecAccessControlBiometryAny'; did you mean 'kSecAccessControlTouchIDAny'?
개발 환경(platform)
iMac, Xcode 9.2 (9C40b)
원인(cause)
현재 개발 중인 프로젝트가 iOS 11.3을 사용할 수 없는 환경이거나, 빌드 세팅이 iOS 11.3 이전으로 되있어서 발생하는 에러이다. 그 이유는 현재 개발 중인 코드에서 사용하려는 kSecAccessControlBiometryAny라는 API는 iOS 11.3 버전부터 지원하는 것인데, 사용할 수 없다고 발생한 에러이기 때문이다. 참고로, iOS 11.2에서 iOS 11.3으로 변경된 내용들은 아래와 같다.
SecAccessControl.h kSecAccessControlBiometryAny (iOS 11.2) à kSecAccessControlTouchIDAny (iOS 11.3) kSecAccessControlBiometryCurrentSet (iOS 11.2) à kSecAccessControlTouchIDCurrentSet (iOS 11.3) |
해결(solution)
[해결방안 1] 현재 나처럼 Xcode 9.2를 사용중이라면, 불행하게도 Xcode 9.2에서는 iOS 11.3 버전이상을 지원하지 않고 있기 때문에 사용자체를 못한다. 따라서, Xcode를 9.3이상으로 업그레이드해주어야 한다. 그리고나서 프로젝트 빌드버전을 iOS 11.3 이상으로 변경해주면 된다.
[해결방안 2] 현재 나처럼 Xcode 9.2를 사용중인데, iOS 11.3 이상의 버전으로 변경하고 싶지 않다면, iOS 11.3 기기 관련 패키지들을 따로 다운받아서 Xcode 9.2 에 추가시켜서 사용하는 방법도 있다. 나는 [해결방안1]로 넘어갔기 때문에, 이 방법에 대해서는 다른분이 Stackoverflow에 설명한 URL을 첨부한다.