AR 앱의 Camera Permission 취득 템플릿
소개
최근 ARKit을 사용한 AR Cake Divider이라는 앱을 출시했습니다. 그러나, 최초의 릴리스시에 Apple Human Interface Guidelines의 Resuesting Permission(이하 AHIG)에 준거하고 있지 않다고 하는 것으로 리젝트를 받았습니다. AR 앱을 만드는데 Camera Permission은 필수가 되지만, Xcode의 디폴트 AR 프로젝트에서는 AHIG에 준거한 형태의 퍼미션 요구를 내주지 않습니다.
앱을 만들 때마다 수정하는 것은 번거롭기 때문에 템플릿 프로젝트을 만들고 GitHub에 게시했습니다.
AHIG의 Resuesting Permission의 요점
이 중 아무도 중요하지만, 두 번째는 "앱이 그 정보에 액세스할 수 없으면 동작할 수 없다면 제대로 요청을 내야 한다"는 것도 의미하고 있습니다.
구체적으로는, 예를 들면 한 카메라 앱이 기동시에 카메라를 기동시키도록(듯이), 기동전에 퍼미션 요구를 실시했다고 합니다.
일단 사용자가 '허용하지 않음'을 선택하면 앱을 다시 시작했습니다.
그 때 앱은 한번 권한 취득을 할 수 없었기 때문에, 다시 요구를 내지 않고 그대로 상태였다고 합니다.
이는 앱이 해당 정보가 필요할 때 요청을 하지 않은 것으로 간주됩니다. 앱이 해당 정보에 액세스할 수 없으면 작동할 수 없는 경우 다시 요청을 요청합니다.
템플릿 프로젝트 포인트
이상의 점을 감안하여 템플릿 프로젝트에서는 다음의 기능을 구현하고 있습니다.
⇨
let cameraAuthorizationStatus = AVCaptureDevice.authorizationStatus(for: .video)
처음 시작할 때의 판단에 따라 앱이 Foreground가 된 시점에서
requestCameraPermission()
alertCameraAccessNeeded()
이를 위해 UIApplication.willEnterForegroundNotification을 모니터링합니다.
⇨
NotificationCenter.default.addObserver(self, selector: #selector(checkPermission), name: UIApplication.willEnterForegroundNotification, object: nil)
⇨ InfoPlist.strings, Localizable.strings
스크린샷
처음 시작할 때 대화상자
"허용하지 않음"을 선택한 후 다시 시작할 때 대화상자
Reference
이 문제에 관하여(AR 앱의 Camera Permission 취득 템플릿), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/noby111/items/316e048725a150ac4167텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)