iOS 10.0 런타임 충돌의 NSCameraUsageDescription?


154

iOS 10.0마지막 베타 사용 앱에서 바코드를 스캔하기 위해 카메라를 사용하려고했는데이 런타임 오류로 인해 충돌이 발생했습니다.

사용법에 대한 설명없이 개인 정보에 민감한 데이터에 액세스하려고했기 때문에이 앱이 다운되었습니다. 앱의 Info.plist에는 앱이이 데이터를 사용하는 방법을 사용자에게 설명하는 문자열 값이있는 NSCameraUsageDescription 키가 포함되어야합니다.

이 키를 plist에 넣었지만 여전히 추락 했습니까?


6
같은 문제가 있고 info.plist에 NSCameraUsageDescription을 추가했지만 여전히 동일한 메시지로 충돌합니다. 당신은 그것을 해결 했습니까? 분명히이 문제에 대답 한 사람은 이미 키를 추가해도 문제가 발생한다는 것을 이해하지 못했습니다.
CarmenA

올바른 info.plist 파일에 항목을 추가했지만 여전히 실패한 경우, info.plist, 이미지, 오디오, 영화 등과 같은 리소스 파일의 변경 사항을 Xcode가 인식하지 못하는 경우가있을 수 있습니다. Xcode가 최신 버전을 사용하도록 Derived Data 폴더에서 앱 빌드 제품을 정리하거나 삭제하십시오.
Walt Sellers

답변:


227

iOS 10 이후에는 아래와 같이 Info.plist에서 앱이 액세스하는 모든 시스템의 개인 정보 보호 데이터에 대한 사용법 설명을 정의하고 제공해야합니다.

달력

Key    :  Privacy - Calendars Usage Description    
Value  :  $(PRODUCT_NAME) calendar events

알림 :

Key    :   Privacy - Reminders Usage Description    
Value  :   $(PRODUCT_NAME) reminder use

연락 :

Key    :   Privacy - Contacts Usage Description     
Value  :  $(PRODUCT_NAME) contact use

사진 :

Key    :  Privacy - Photo Library Usage Description    
Value  :  $(PRODUCT_NAME) photo use

블루투스 공유 :

Key    :  Privacy - Bluetooth Peripheral Usage Description     
Value  :  $(PRODUCT_NAME) Bluetooth Peripheral use

마이크 :

Key    :  Privacy - Microphone Usage Description    
Value  :  $(PRODUCT_NAME) microphone use

카메라 :

Key    :  Privacy - Camera Usage Description   
Value  :  $(PRODUCT_NAME) camera use

위치 :

Key    :  Privacy - Location Always Usage Description   
Value  :  $(PRODUCT_NAME) location use

Key    :  Privacy - Location When In Use Usage Description   
Value  :  $(PRODUCT_NAME) location use

히스 :

Key    :  Privacy - Health Share Usage Description   
Value  :  $(PRODUCT_NAME) heath share use

Key    :  Privacy - Health Update Usage Description   
Value  :  $(PRODUCT_NAME) heath update use

홈킷 :

Key    :  Privacy - HomeKit Usage Description   
Value  :  $(PRODUCT_NAME) home kit use

미디어 라이브러리 :

Key    :  Privacy - Media Library Usage Description   
Value  :  $(PRODUCT_NAME) media library use

모션 :

Key    :  Privacy - Motion Usage Description   
Value  :  $(PRODUCT_NAME) motion use

음성 인식 :

Key    :  Privacy - Speech Recognition Usage Description   
Value  :  $(PRODUCT_NAME) speech use

시리 킷 :

Key    :  Privacy - Siri Usage Description  
Value  :  $(PRODUCT_NAME) siri use

TV 제공 업체 :

Key    :  Privacy - TV Provider Usage Description   
Value  :  $(PRODUCT_NAME) tvProvider use

링크 에서 자세한 정보를 얻을 수 있습니다 .


1
Privacy - Photo Library Usage Description오류를 위해 그것을했다NSPhotoLibraryUsageDescription
Bruno Bieri

Apple Development에 익숙하지 않은이 문제는 성가신 일이었습니다. 다행이다. 건배!
user2529011

1
@MaylorTaylor : 예, 추가해야합니다.
Bhoopi

111

Apple은에서 사용자 개인 데이터 유형에 접근하는 방법을 변경했습니다 iOS 10.

아래 예제와 같이 바코드를 스캔하는 데 사용한 것과 같이 응용 프로그램 및 응용 프로그램에 적용되는 사용 정보에 " Privacy - Camera usage description"키 를 추가해야합니다 Info.plist.

자세한 내용은 아래 스크린 샷을 참조하십시오.

여기에 이미지 설명을 입력하십시오


62

info.plist에서 아래 키를 추가해야합니다.

NSCameraUsageDescription 또는 Privacy - Camera usage description

사용법에 대한 설명을 추가하십시오.

링크 에서 자세한 스크린 샷을 볼 수 있습니다


그가 이미 추가했지만 여전히 충돌이 발생하는 것처럼 들립니다. KVP가 plist에 있지만 여전히 충돌하지 않는 것처럼 발생하는 것과 동일한 문제입니다.

43

또는 Info.plist를 소스 코드로 열고 다음을 추가하십시오.

<key>NSCameraUsageDescription</key>
<string>Camera usage description</string>

4
누군가 "NSCameraUsageDescription"을 현지화하려는 경우 "NSCameraUsageDescription" = "Requires access to the camera";현지화 된 infoPlist.strings 파일에 추가 하십시오
Khurram Shehzad

30

이러한 원시 값을 사용하고 info.plist에 복사하십시오.

    <key>NSCalendarsUsageDescription</key>
      <string>$(PRODUCT_NAME) calendar events</string>
    <key>NSRemindersUsageDescription</key>
      <string>$(PRODUCT_NAME) reminder use</string>
    <key>NSCameraUsageDescription</key>
      <string>This app requires to access your photo library to show image on profile and send via chat</string>
    <key>NSMicrophoneUsageDescription</key>
      <string>This app requires to access your microphone to record video with your voice send via chat</string>
    <key>NSPhotoLibraryUsageDescription</key>
      <string>This app requires to access your photo library to show image on profile and send via chat</string>
    <key>NSContactsUsageDescription</key>
       <string>$(PRODUCT_NAME) contact use</string>
    <key>NSLocationAlwaysUsageDescription</key>
      <string>$(PRODUCT_NAME) location use</string>
    <key>NSLocationWhenInUseUsageDescription</key>
      <string>$(PRODUCT_NAME) location use</string>

이 원시 키 이름을 받았습니까?
Omar N Shamali

대단하다. 그것은 엑스 코드의 클릭을 많이 수행에서 저를 저장
MaylorTaylor

26

xcode UI가 한 버전에서 다음 버전으로 조금 변경되었으므로 여기에서 프로젝트-> 대상-> 정보에 도움이되는 경우 9.0 베타 4의 plist를 업데이트하는 위치가 있습니다.여기에 이미지 설명을 입력하십시오


2
이것이 정답입니다! 나는 이미 추가에도 불구, 엑스 코드 9.2에 바로이 같은 문제가 발생 된 <key>NSCameraUsageDescription</key>받는 사람 의 Info.plist .
psantos

2
확실히 받아 들였다! 내 프로젝트에 두 개의 대상이 있고 이것을 <key>NSCameraUsageDescription</key>두 번째 info.plist 파일 에 추가하려고 시도 했지만 아무런 영향을 미치지 않으며 git status를 실행하여 XCode (10.1)가 이러한 변경 사항을 고려하지 않았 음을 확인할 수 있습니다 때문에 내 의 Info.plist 다른 대상에 대한 어떤 변경 사항이 없습니다. 따라서 올바른 방법은 Project-> Target-> Info를 거치는 것 입니다. 고마워요!
bra.Scene

4

카메라를 사용하려고 할 때 직면했던 또 하나의 사례 _CRASHING_DUE_TO_PRIVACY는 "카메라 사용 설명"을 추가 한 후에도 카메라 가 계속 충돌하는 것으로 바빴습니다 . 호출 스택에서 실질적인 정보를 얻지 못한 후 "Organizer"로 전환하여 장치의 충돌 보고서를 살펴 봅니다. '마이크 사용 설명'이 누락되어 개인 정보 보호에 대해 불만을 표시 한 것으로 나타났습니다. 나는 그것을 추가하고 그런 비밀스러운 붕괴를 제거했습니다.


4

Info.plist에 올바른 키를 추가 했는데도 여전히 오류가 발생하는 경우 :

올바른 Info.plist에 키를 추가했는지 확인하십시오. 최신 버전의 xCode에는 3 개의 Info.plist가 있습니다.

하나는 문제를 해결 한 앱 이름이있는 폴더 아래에 있습니다.

두 번째는 YourappnameTests에 있고 세 번째는 YourappnameUITests에 있습니다.

도움이 되길 바랍니다.


2

Ionic을 사용하는 경우 플랫폼 ios 태그를 추가하여 config.xml 에서 직접 해결할 수 있습니다 .

<platform name="ios">
.
.
.
    <config-file target="*-Info.plist" parent="NSPhotoLibraryUsageDescription">
        <string>photo library usage description</string>
    </config-file>
    <config-file target="*-Info.plist" parent="NSCameraUsageDescription">
        <string>camera usage description</string>
    </config-file>
.
.
.
</platform>

@BHUPI의 답변에도 감사드립니다.



1

plist를 확인하고 "프로젝트"정보에서만 작동하지 않는 것을 발견했습니다. "개인 정보-카메라 ...."를 추가해야합니다. 그러면 작동합니다. 도와 드리겠습니다.


0

나는 같은 문제가 있었고 해결책을 찾지 못했습니다. Mark90은 info.plist 파일이 많으므로 올바른 것을 편집해야합니다. 프로젝트로 이동하여 대상 아래에서 프로젝트 (테스트가 아닌)를 선택하고 탭 표시 줄에서 정보를 선택한 후 " 사용자 정의 iOS 대상 특성 " 아래에 권한을 추가하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.