[iOS] Permission Alert View 에 custom 메시지 추가하기

iOS App이 사용자의 사진, 캘린더, Push Notification, 연락처 등 개인정보에 접근 시도할 때,  System은 AlertView를 띄어 사용자에게 접근 권한을 부여할 것인지 묻는다.

이 때 보여지는 AlertView 메시지는 context 정보가 없기 때문에 사용자의 허가를 득하기가 쉽지 않다.

그래서 요즘은 권한 부여 AlertView를 띄우기 전에 접근이 필요한 이유를  사용자에게 먼저 알려주는 방법을 사용함으로써 이러한 장벽을 낮추려는 시도가 많다.

오늘 이와 관련한 글  The Right Way to Ask Users for iOS Permissions 을 읽다가 한가지 놀라운 – 나만 몰랐으니 나만 놀란걸 수도 – 사실을 발견하였다. (링크된 블로그 글도 꼭 읽어보길 바란다.)

글에 첨부된 이미지들을 살펴보니 System에서 관장하는 접근 권한 AlertView에 App에 특화된 접근 목적이 기술되고 있는 것 아닌가.

실제 구현 방법을 조사해보니 너무 간단했다. 간단히 방법을 알아보자. (너무 간단해서 개인 블로그 대기 리스트에 넣지 않고 바로 쓴다.)

구현 

iOS 는 info.plist의 특정 키값을 통해 접근 권한 AlertView에 메시지를 추가 할 수 있게 한다. 즉 개발자가 할 일은 info.plist에 키 값을 넣고 메시지를 넣으면 끝이다. (다국어를 지원한다면 Localized 작업 필요)

iOS Developer Library 의 Information Property List Key Reference 를 보면 접근 권한 메시지에 해당하는 키값을 확인할 수 있다. Xcode의 editor를 이용한다면 “Privacy – ” 로 시작하는 키값을 찾으면 된다. Key 값에 따라 지원하는 iOS 버전도 다르니 Refernce를 확인하자. (애석하게도 Push Notification 에 대한 키값은 보이질 않는다.)

< From : iOS Developer Library >

간단한 테스트 앱을 만들어 확인하였다. Info.plist 에 키값을 추가 하기 전의 접근 권한 알림창 – 기본 접근 권한 알림창 – 은 아래와 같다.

< 메시지 적용 전 접근 알림 >

아래와 같이 info.plist에 키값을  추가하였다. (사진과 연락처)

< info.plist 화면 in Xcode >

앱을 실행시키면 기존 접근 권한 알림과 달리 info.plist에 설정한 메시지가 AlertView에 추가된 것을 확인할 수 있다.

< 사진 라이브러리 접근 알림 창 >

< 연락처 접근 권한 알림 창 >

 

App에서 접근하려고 하는 사용자의 데이터가 App 동작의 핵심 역할을 한다면, 접근이 필요한 이유를 명시함으로써 사용자의 행동을 좀 더 쉽게 유도할 수 있을 것이다.

본인은 위 내용을 현재 작업 중인, 아니 현재 뿐 아니라 앞으로 작업할 서비스에도 적용할 생각이다.