"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 앱이 카메라에 액세스하려고 할 때 사용자에게 앱이 카메라 데이터를 어떻게 사용하는지 설명하는 사용 설명이 부족할 때 발생합니다.
iOS는 개인 정보 보호 및 보안을 강화하기 위해 사용자에게 앱이 민감한 데이터에 액세스할 때 왜 그 데이터가 필요한지 설명하는 사용 설명을 요구합니다.
해결 방법은 다음과 같습니다
1. Info.plist에 NSCameraUsageDescription 추가
Info.plist 파일을 열고 `NSCameraUsageDescription` 키를 추가합니다.
이 키의 값은 사용자에게 카메라 액세스 권한을 요청하는 설명 메시지여야 합니다.
이 메시지는 사용자에게 왜 카메라 액세스 권한이 필요한지 이해시킬 수 있어야 합니다.
예를 들어:
<key>NSCameraUsageDescription</key>
<string>$(PRODUCT_NAME) camera use</string>
2. GUI 로 설정하는 방법은 아래와 같습니다.
1) Info -> Information Property List -> 오른쪽 마우스 버튼 클릭하고 Add Row 메뉴를 클릭합니다.
2) Property Item이 하나 추가된 것을 확인 할 수 있습니다.
3) Key에 "NSCameraUsageDescription"를 입력하고, Value 에 "$(PRODUCT_NAME) uses camera"를 입력합니다.
NSCameraUsageDescription를 입력하면 "Privacy - Camera Usage Description"으로 자동 변경되는 것을 확인할 수 있습니다.
3. 이제 다시 빌드하면 모든 오류가 사라진 것을 확인 할 수 있습니다.
4. 다른 Privacy 관련 아이템을 추가하려면 아래의 Key-Value를 사용하면 됩니다.
Calendar
Key : Privacy - Calendars Usage Description
Value : $(PRODUCT_NAME) calendar events
Reminder :
Key : Privacy - Reminders Usage Description
Value : $(PRODUCT_NAME) reminder use
Contact :
Key : Privacy - Contacts Usage Description
Value : $(PRODUCT_NAME) contact use
Photo :
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
Bluetooth Sharing :
Key : Privacy - Bluetooth Peripheral Usage Description
Value : $(PRODUCT_NAME) Bluetooth Peripheral use
Microphone (also used for video recording) :
Key : Privacy - Microphone Usage Description
Value : $(PRODUCT_NAME) microphone use
Camera (photo or video recording) :
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use
Location :
Key : Privacy - Location Always Usage Description
Value : $(PRODUCT_NAME) location use
Key : Privacy - Location When In Use Usage Description
Value : $(PRODUCT_NAME) location use
Heath :
Key : Privacy - Health Share Usage Description
Value : $(PRODUCT_NAME) heath share use
Key : Privacy - Health Update Usage Description
Value : $(PRODUCT_NAME) heath update use
HomeKit :
Key : Privacy - HomeKit Usage Description
Value : $(PRODUCT_NAME) home kit use
Media Library :
Key : Privacy - Media Library Usage Description
Value : $(PRODUCT_NAME) media library use
Motion :
Key : Privacy - Motion Usage Description
Value : $(PRODUCT_NAME) motion use
Speech Recognition :
Key : Privacy - Speech Recognition Usage Description
Value : $(PRODUCT_NAME) speech use
SiriKit :
Key : Privacy - Siri Usage Description
Value : $(PRODUCT_NAME) siri use
TV Provider :
Key : Privacy - TV Provider Usage Description
Value : $(PRODUCT_NAME) tvProvider use
'iOS > Xcode' 카테고리의 다른 글
[iOS] 스토리보드에서 Safe Area 높이의 70%로 View Height 설정하기 (0) | 2023.10.23 |
---|---|
[ios] .gitignore 설정하기 (0) | 2023.10.17 |
[Xcode] 프로젝트 삭제하는 방법 (0) | 2023.10.08 |
[Xcode] 스토리보드 없이 코드로 UI 구현하기 (0) | 2023.10.08 |
[iOS] iPhone 개발자 모드 변경하기 (0) | 2023.10.06 |