programing tip

iOS 10-카메라, 마이크 및 사진 라이브러리의 권한 요청 변경으로 인해 응용 프로그램이 중단됨

itbloger 2020. 8. 25. 07:45
반응형

iOS 10-카메라, 마이크 및 사진 라이브러리의 권한 요청 변경으로 인해 응용 프로그램이 중단됨


iOS 10, 이제 미디어 라이브러리, 사진, 카메라 및 이와 같은 기타 하드웨어에 액세스하려면 사용자 권한이 필요합니다. 이에 대한 해결책은 info.plist사용자가 데이터를 사용하는 방법에 대한 설명과 함께 키를 추가 하는 것입니다.

몇 개의 열쇠 만 찾을 수있었습니다

NSPhotoLibraryUsageDescription
NSMicrophoneUsageDescription
NSCameraUsageDescription

적절한 키 설명을 iOS 10 제공하지 않은 경우 info.plist 같이 다른 하드웨어에도 더 많은 키가 있는지 알고 싶습니다 . XCode-8 베타를 사용하여 빌드하면 애플리케이션이 충돌 합니다.


파일에 Cocoa Keys지정할 수 있는 모든 목록 이 있습니다 Info.plist.

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html

(Xcode 대상-> 정보-> 사용자 지정 iOS 대상 속성)

아이폰 OS는 이미 액세스 마이크, 카메라, 미디어 라이브러리에 대한 권한이 필요 이전 (iOS6의, iOS7에)을하지만, 이후 iOS10응용 프로그램은 것이다 충돌 당신은 (는 비워 둘 수 없습니다) 허가를 요구하는 이유에 대한 설명을 제공하지 않는 경우.

예제 설명이있는 개인 정보 키 : 컨닝 지

출처

Info.plist를 소스 코드로 열 수도 있습니다. 소스 코드

출처

다음과 같이 추가하십시오.

<key>NSLocationAlwaysUsageDescription</key>
<string>${PRODUCT_NAME} always location use</string>

모든 개인 키 목록 :

NSCameraUsageDescription
NSBluetoothPeripheralUsageDescription
NSCalendarsUsageDescription
NSContactsUsageDescription
NSHealthShareUsageDescription
NSHealthUpdateUsageDescription
NSHomeKitUsageDescription
NSLocationAlwaysUsageDescription
NSLocationUsageDescription
NSLocationWhenInUseUsageDescription
NSAppleMusicUsageDescription
NSMicrophoneUsageDescription
NSMotionUsageDescription
kTCCServiceMediaLibrary
NSPhotoLibraryUsageDescription
NSRemindersUsageDescription
NSSiriUsageDescription
NSSpeechRecognitionUsageDescription
NSVideoSubscriberAccountUsageDescription

2019 업데이트 :

지난 몇 달 동안 카메라 사용 설명에 내가 찍은 사진으로 무엇을하는지 명시하지 않았기 때문에 두 개의 앱이 검토 중에 거부 되었습니다.

나는에서 설명을 변경했습니다 ${PRODUCT_NAME} need access to the camera to take a photo${PRODUCT_NAME} need access to the camera to update your avatar응용 프로그램 컨텍스트 (사용자가 아바타에 도청) 분명했다하더라도.

이제 Apple은 개인 정보 사용 설명에 더 많은 관심을 기울이고있는 것으로 보이며 우리가 허가를 요청하는 이유를 자세히 설명해야합니다.


.NET 용 iOS 10 요청 권한 샘플에 대한 코드는 아래에서 확인하세요 info.plist.
사용자 지정 메시지를 수정할 수 있습니다.

    <key>NSCameraUsageDescription</key>
    <string>${PRODUCT_NAME} Camera Usage</string>

    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>${PRODUCT_NAME} BluetoothPeripheral</string>

    <key>NSCalendarsUsageDescription</key>
    <string>${PRODUCT_NAME} Calendar Usage</string>

    <key>NSContactsUsageDescription</key>
    <string>${PRODUCT_NAME} Contact fetch</string>

    <key>NSHealthShareUsageDescription</key>
    <string>${PRODUCT_NAME} Health Description</string>

    <key>NSHealthUpdateUsageDescription</key>
    <string>${PRODUCT_NAME} Health Updates</string>

    <key>NSHomeKitUsageDescription</key>
    <string>${PRODUCT_NAME} HomeKit Usage</string>

    <key>NSLocationAlwaysUsageDescription</key>
    <string>${PRODUCT_NAME} Use location always</string>

    <key>NSLocationUsageDescription</key>
    <string>${PRODUCT_NAME} Location Updates</string>

    <key>NSLocationWhenInUseUsageDescription</key>
    <string>${PRODUCT_NAME} WhenInUse Location</string>

    <key>NSAppleMusicUsageDescription</key>
    <string>${PRODUCT_NAME} Music Usage</string>

    <key>NSMicrophoneUsageDescription</key>
    <string>${PRODUCT_NAME} Microphone Usage</string>

    <key>NSMotionUsageDescription</key>
    <string>${PRODUCT_NAME} Motion Usage</string>

    <key>kTCCServiceMediaLibrary</key>
    <string>${PRODUCT_NAME} MediaLibrary Usage</string>

    <key>NSPhotoLibraryUsageDescription</key>
    <string>${PRODUCT_NAME} PhotoLibrary Usage</string>

    <key>NSRemindersUsageDescription</key>
    <string>${PRODUCT_NAME} Reminder Usage</string>

    <key>NSSiriUsageDescription</key>
    <string>${PRODUCT_NAME} Siri Usage</string>

    <key>NSSpeechRecognitionUsageDescription</key>
    <string>${PRODUCT_NAME} Speech Recognition Usage</string>

    <key>NSVideoSubscriberAccountUsageDescription</key>
    <string>${PRODUCT_NAME} Video Subscribe Usage</string>

iOS 11 이상, 라이브러리에 사진 / 이미지를 추가하려면이 키를 추가해야합니다.

    <key>NSPhotoLibraryAddUsageDescription</key>
    <string>${PRODUCT_NAME} library Usage</string>

iOS 10 용 Info.plist에이 권한을 추가해야합니다.

사진 :

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

마이크 :

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

카메라 :

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

참고 URL : https://stackoverflow.com/questions/38498275/ios-10-changes-in-asking-permissions-of-camera-microphone-and-photo-library-c

반응형