에러(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 버전이상을 지원하지 않고 있기 때문에 사용자체를 못한다. 따라서, Xcode9.3이상으로 업그레이드해주어야 한다. 그리고나서 프로젝트 빌드버전을 iOS 11.3 이상으로 변경해주면 된다.

 

[해결방안 2] 현재 나처럼 Xcode 9.2를 사용중인데, iOS 11.3 이상의 버전으로 변경하고 싶지 않다면, iOS 11.3 기기 관련 패키지들을 따로 다운받아서 Xcode 9.2 에 추가시켜서 사용하는 방법도 있다. 나는 [해결방안1]로 넘어갔기 때문에, 이 방법에 대해서는 다른분이 Stackoverflow에 설명한 URL을 첨부한다.