it leader


ios 10에 대한 이미지 검색결과






사진첩이나 달력등의 사용자 데이터에 접근하려면 iOS10부터는 필수적으로 접근에 필요한 목적을 입력해야 한다.

대상 기준 : 키
  • 미디어 라이브러리 접근 : NSAppleMusicUsageDescription
  • 블루투스 인터페이스 접근 : NSBluetoothPeripherealUsageDescription
  • 달력 접근 : NSCalendarUsageDescription
  • 카메라 접근 : NSCameraUsageDescription
  • 연락처에 접근 : NSContactsUsageDescription
  • 헬스 데이터 접근 : NSHealthShareUsageDescription
  • 건강 데이터 접근 : NSHealthUpdateUSageDescription
  • HomeKit 설정 데이터 접근 : NSHomeKitUsageDescription
  • 위치정보 접근 (항상 허용) :  NSLocationAlwaysUsageDescription
  • 위치정보 접근 (사용할 경우만) : NSLocationWhenInUseUsageDescription
  • 마이크 접근 : NSMicrophoneUsageDescription
  • 사진 라이브러리 접근 : NSPhotoLibraryUsageDescription

이를 대응하지 않는 경우 아래와 같은 오류가 발생한다.

1
2
3
4
// 사진 라이브러리에 접근시
PHPhotoLibrary.requestAuthorization { PHAuthorizationStatus in
}

오류가 발생하면 Xcode콘솔에 다음과 같은 메시지가 출력된다.

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

위 오류를 해결하려면 키와 사용목적을 Info.plist파일에 추가한다. 예로 사진 라이브러리에 접근을 하려면 NSPhotoLibraryUsageDescription키를 사용한다.

1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>사용목적을 여기에 작성</string>
    ...
</dict>
</plist>

Info.plist 파일에 값을 추가한후 다시 사진라이브러리를 호출하면 접근을 요구하는 경고창이 나온다. Info.plist파일에 작성한 “사용목적”이 경고창에 표시된다.

firebase-ios-private-option

firebase-option

참고자료: Cocoa Keys

원본출처 :  http://bit.ly/2ngBeiD


profile

it leader

@dev__pixui

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!