iOS 10+ Privacy 설정

iOS 10이상에서는 빌드 시에 카메라나 특정 다른 기능을 사용하면 아무런 경고 없이 Crash가 발생하게 된다.



디버그 메세지는 다음과 같다.

This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.

iOS 10에서 아래와 같은 기능을 사용하기 위해서는 사용자의 확인 메세지를 설정해줘야 한다.



사용 설명을 요구하는 API 항목은 다음과 같다.

Data Class

Xcode Key

Raw Info.plist Key

Apple MusicPrivacy - Media Library Usage DescriptionNSAppleMusicUsageDescription
BluetoothPrivacy - Bluetooth Peripheral Usage DescriptionNSBluetoothPeripheralUsageDescription
CalendarPrivacy - Calendars Usage DescriptionNSCalendarsUsageDescription
CameraPrivacy - Camera Usage DescriptionNSCameraUsageDescription
ContactsPrivacy - Contacts Usage DescriptionNSContactsUsageDescription
HealthPrivacy - Health Share Usage Description
Privacy - Health Update Usage Description
NSHealthShareUsageDescription
NSHealthUpdateUsageDescription
HomePrivacy - HomeKit Usage DescriptionNSHomeKitUsageDescription
LocationPrivacy - Location Always Usage Description
Privacy - Location When In Use Usage Description
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
MicrophonePrivacy - Microphone Usage DescriptionNSMicrophoneUsageDescription
MotionPrivacy - Motion Usage DescriptionNSMotionUsageDescription
PhotosPrivacy - Photo Library Usage DescriptionNSPhotoLibraryUsageDescription
RemindersPrivacy - Reminders Usage DescriptionNSRemindersUsageDescription
SiriPrivacy - Siri Usage DescriptionNSSiriUsageDescription
Speech RecognitionPrivacy - Speech Recognition Usage DescriptionNSSpeechRecognitionUsageDescription
TV Provider AccountPrivacy - TV Provider Usage DescriptionNSVideoSubscriberAccountUsageDescription



위 항목에 대해서 Info.plist 를 설정하면 된다.

카메라와 앨범, 사용자의 위치 조회에 대한 기능을 사용하기 위해서는 Privacy를 추가하면 된다.

PrivacySetting



이제 소스 코드에서 해당 기능을 사용할 때 권한을 승인 받는 화면이 사용자에게 보여진다.

PrivacyScreenshot