iOS 10 - 请求相机,麦克风和照片库权限导致应用程序崩溃的更改

问题描述 投票:90回答:3

iOS 10,现在需要用户权限才能访问媒体库,照片,相机和其他硬件。解决方法是将他们的密钥添加到info.plist中,并为用户说明我们如何使用他们的数据,

我只能找到几把钥匙

NSPhotoLibraryUsageDescription
NSMicrophoneUsageDescription
NSCameraUsageDescription

我想知道是否还有更多的密钥用于iOS 10中的其他硬件如果你没有提供正确的密钥描述info.plist你的应用程序将崩溃如果使用XCode - 8 beta构建。

ios plist ios10 user-permissions
3个回答
123
投票

您可以在Cocoa Keys文件中指定所有Info.plist的列表:

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

(Xcode目标 - >信息 - >自定义iOS目标属性)

iOS早先已经需要访问麦克风,相机和媒体库的权限(iOS6,iOS7),但是如果你没有提供描述为什么要求获得权限(它不能为空),iOS10应用程序将崩溃。

隐私密钥与示例说明:cheatsheet

Source

您还可以打开Info.plist作为源代码:source code

Source

并添加如下:

<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似乎现在更加关注隐私使用说明,我们应该详细解释为什么我们要求许可。


61
投票

请查看info.plist的ios 10请求许可样本的以下代码。 您可以修改自定义消息。

    <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>

20
投票

您必须在Info.plist for iOS 10中添加此权限。

照片:

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
© www.soinside.com 2019 - 2024. All rights reserved.