목차

  1. 🔎 문제 상황
  2. 🤳 카메라 접근 권한
  3. 🛜 로컬 네트워크 접근 권한
  4. 📚 참고 자료

🔎 문제 상황

구현하는 앱에서는 카메라로컬 네트워크에 대한 사용자의 접근 권한 허용이 반드시 필요했습니다.

기존에는 이를 위해 Info.plist에 Privacy - Local Network Usage DescriptionPrivacy - Camera Usage Description만 추가한 상황이었습니다.

사용자가 권한 허용을 거부했을 때, 기능이 동작하지 않는 게 오류처럼 사용자에게 보이는 상황이었습니다. (ex: 카메라 거부 후, 촬영 시작 시 검은 화면만 보임)

위 상황을 방지하기 위해 사용자가 권한을 허용하지 않았다면, 기능 (화면 진입)을 제한하기로 했습니다.

여기서 제한하는 방법은 1️⃣ 권한 허용이 필요함을 알리며 설정 앱으로 이동할 수 있는 알럿을 띄우며, 2️⃣ 다음 화면으로 전환되지 않도록 막았음을 의미합니다.


🤳 카메라 접근 권한

카메라 접근 권한에 대한 로직을 다루기 위해 AVFoundation.AVCaptureDeviceimport 합니다.

권한 상태 확인

AVCaptureDevice.authorizationStatus(for: .video)의 값을 통해 권한 상태를 확인할 수 있으며 그 종류는 다음과 같습니다.

  1. notDetermined : 아직 권한을 허용할지 거부할지 결정하지 않은 상태
  2. restricted : 앱이 미디어 캡처 장치를 사용할 수 없다는 상태
  3. denied : 사용자가 명시적으로 권한을 거부한 상태
  4. authorized : 사용자가 명시적으로 권한을 허용한 상태