iOS权限配置

访问相应的功能时,要在plist配置相应的权限

  • 摄像头(相机)权限
  • 相册权限
  • 蓝牙权限
  • 日历权限
  • 访问通讯录
  • 访问使用Face ID
  • 访问用户位置
  • 访问及更改用户健康数据
  • 访问设备麦克风
  • 访问设备加速度计
  • 访问用户提醒
  • 访问Siri
  • Apple的语音识别服务器
  • 访问用户的临床记录
  • 访问用户的HomeKit配置数据

1. 摄像头(相机)权限

NSCameraUsageDescription:
NSCameraUsageDescriptionString- iOS)描述了应用程序(包括iMessage应用程序)访问设备摄像头的原因。当系统提示用户允许访问时,此字符串将显示为警报的一部分。

重要提示: 为了保护用户隐私,在iOS 10.0上或之后链接的iOS应用程序以及访问设备摄像头的用户必须静态声明这样做的意图。在应用程序的文件中包含NSCameraUsageDescription键,Info.plist并为此密钥提供目的字符串。如果您的应用尝试访问设备的相机而没有相应的用途字符串,则您的应用会退出。
iOS 7.0及更高版本支持此密钥
iOS12 beta1需添加麦克风权限,此BUG iOS12 beta2已经修复

2. 相册权限

NSPhotoLibraryAddUsageDescription:
NSPhotoLibraryAddUsageDescriptionString- iOS)此键可让您描述应用程序寻求对用户照片库的只写访问权限的原因。当系统提示用户允许访问时,此字符串将显示为警报的一部分。

重要提示: 为了保护用户隐私,iOS 10.0上或之后链接的iOS应用程序访问用户的照片库,必须静态声明这样做的意图。在应用程序的文件中包含NSPhotoLibraryAddUsageDescription键(在iOS 11上或之后链接的应用程序中)或NSPhotoLibraryUsageDescription键,Info.plist为该键提供用途字符串。如果您的应用尝试访问用户的照片库而没有相应的用途字符串,则您的应用会退出。
iOS 11.0及更高版本支持此密钥

NSPhotoLibraryUsageDescription:
NSPhotoLibraryUsageDescriptionString- iOS)此键可让您描述应用访问用户照片库的原因。当系统提示用户允许访问时,此字符串将显示为警报的一部分。
虽然此键控制对用户照片库的读写访问,但如果您的应用只需要向库中添加资源而不需要读取任何资源,则最好使用NSPhotoLibraryAddUsageDescription

重要提示: 为了保护用户隐私,iOS 10.0上或之后链接的iOS应用程序访问用户的照片库,必须静态声明这样做的意图。在应用程序的文件中包含NSPhotoLibraryUsageDescription键,Info.plist并为此密钥提供目的字符串。如果您的应用尝试访问用户的照片库而没有相应的用途字符串,则您的应用会退出。
iOS 6.0及更高版本支持此密钥。

3. 蓝牙权限

NSBluetoothPeripheralUsageDescription:
NSBluetoothPeripheralUsageDescriptionString- iOS)此键可让您描述应用使用蓝牙的原因。当系统提示用户允许使用时,您为此密钥提供的值将显示为警报的一部分。

重要提示: 为了保护用户隐私,在iOS 10.0上或之后链接的iOS应用程序以及访问蓝牙接口的用户必须静态声明这样做的意图。在应用程序的文件中包含NSBluetoothPeripheralUsageDescription键,Info.plist并为此密钥提供目的字符串。如果您的应用尝试访问蓝牙界面而没有相应的用途字符串,则您的应用会退出。
iOS 6.0及更高版本支持此密钥。

4. 日历权限

NSCalendarsUsageDescription:
NSCalendarsUsageDescriptionString- iOS)此键可让您描述应用访问用户日历的原因。当系统提示用户允许访问时,此字符串将显示为警报的一部分。

重要提示: 为了保护用户隐私,iOS 10.0上或之后链接的iOS应用程序访问用户的日历,必须静态声明这样做的意图。在应用程序的文件中包含NSCalendarsUsageDescription键,Info.plist并为此密钥提供目的字符串。如果您的应用尝试访问用户的日历而没有相应的用途字符串,则您的应用会退出。
iOS 6.0及更高版本支持此密钥。

5. 访问通讯录

NSContactsUsageDescription:
NSContactsUsageDescriptionString- iOS)使用该键可以描述应用访问用户联系人的原因。当系统提示用户允许访问时,此字符串将显示为警报的一部分。

重要提示: 为了保护用户隐私,iOS 10.0上或之后链接的iOS应用程序访问用户的联系人,必须静态声明这样做的意图。在应用程序的文件中包含NSContactsUsageDescription键,Info.plist并为此键提供目的字符串。如果您的应用尝试访问用户的联系人而没有相应的用途字符串,则您的应用会退出。
iOS 6.0及更高版本支持此密钥。

6. 访问使用Face ID

NSFaceIDUsageDescription:
NSFaceIDUsageDescription(String- iOS)。通过此键,您可以描述应用使用Face ID的原因。

重要提示: 为了保护用户隐私,在iOS 11或之后链接的iOS应用程序以及在硬件支持时访问Face ID的iOS应用程序必须静态声明这样做的意图。在应用程序的文件中包含NSFaceIDUsageDescription键,Info.plist并为此密钥提供目的字符串。如果您的应用尝试访问没有相应目的字符串的Face ID,您的应用可能会退出。
iOS 11及更高版本支持此密钥。

7. 访问位置权限

NSLocationAlwaysUsageDescription:始终访问用户位置
NSLocationAlwaysUsageDescriptionString- iOS)此键可让您描述应用程序始终访问用户位置信息的原因。当您的应用在前台或后台运行时以可能非显而易见的方式使用位置服务时,请包含此密钥。例如,当社交应用使用位置信息来跟踪用户的位置并显示附近的其他用户时,社交应用可能会包含此密钥。在这种情况下,应用程序跟踪用户位置的事实可能不是很明显。系统在请求使用位置服务的权限时,在向用户显示的警报面板中包含此密钥的值。

重要提示:为了保护用户隐私,iOS 10.0上或之后链接的iOS应用程序访问用户的位置信息,必须静态声明这样做的意图。在应用程序的文件中包含NSLocationAlwaysUsageDescription键,Info.plist并为此键提供目的字符串。如果您的应用尝试访问用户的位置信息而没有相应的用途字符串,则您的应用会退出。
iOS 8.0及更高版本支持此密钥。

NSLocationWhenInUseUsageDescription:在前台运行时以及在使用时访问用户位置信息
NSLocationWhenInUseUsageDescriptionString- iOS)此键可让您描述应用在应用程序在前台运行时以及在使用时访问用户位置信息的原因。当您的应用使用位置服务直接跟踪用户的当前位置时,请包含此密钥。此密钥不支持使用位置服务来监控区域或使用重要位置更改服务监控用户的位置。系统在请求使用位置服务的权限时,在向用户显示的警报面板中包含此密钥的值。

重要提示: 为了保护用户隐私,iOS 10.0上或之后链接的iOS应用程序访问用户的位置信息,必须静态声明这样做的意图。在应用程序的文件中包含NSLocationWhenInUseUsageDescription键,Info.plist并为此键提供目的字符串。如果您的应用尝试访问用户的位置信息而没有相应的用途字符串,则您的应用会退出。
iOS 8.0及更高版本支持此密钥。

8. 用户健康数据

NSHealthShareUsageDescription:读取用户健康数据
NSHealthShareUsageDescription(String- iOS)。通过此键,您可以描述应用读取用户健康数据的原因。调用[requestAuthorizationToShareTypes:readTypes:completion:]方法时,系统会提示用户允许访问,此字符串将显示为警报的一部分。有关更多信息,请阅读HKHealthStore类参考和设置HealthKit。该字符串是可本地化的。

重要提示:为保护用户隐私,iOS 10.0上或之后链接的iOS应用程序必须静态声明这样做的意图,该应用程序读取用户的健康数据。在应用程序的文件中包含NSHealthShareUsageDescription键,Info.plist并为此密钥提供目的字符串。如果您的应用尝试在没有相应目的字符串的情况下读取用户的健康数据,则您的应用会退出。
iOS 8.0及更高版本支持此密钥。

NSHealthUpdateUsageDescription:更改用户健康数据
NSHealthUpdateUsageDescription(String- iOS)。通过此键,您可以描述应用程序更改用户健康数据的原因。调用[requestAuthorizationToShareTypes:readTypes:completion:]方法时,系统会提示用户允许访问,此字符串将显示为警报的一部分。有关更多信息,请阅读HKHealthStore类参考和设置HealthKit。该字符串是可本地化的。

重要提示: 为保护用户隐私,iOS 10.0上或之后链接的iOS应用程序必须静态声明这样做的意图,该应用程序读取用户的健康数据。在应用程序的文件中包含NSHealthUpdateUsageDescription键,Info.plist并为此密钥提供目的字符串。如果您的应用尝试更改用户的健康数据而没有相应的用途字符串,则您的应用会退出。
iOS 8.0及更高版本支持此密钥。

9. 访问设备麦克风

NSMicrophoneUsageDescription:
NSMicrophoneUsageDescriptionString- iOS)此键可让您描述应用程序(包括iMessage应用程序)访问任何设备麦克风的原因。当系统提示用户允许访问时,此字符串将显示为警报的一部分。

重要提示:为了保护用户隐私,iOS 10.0上或之后链接的iOS应用程序访问任何设备的麦克风,必须静态声明这样做的意图。在应用程序的文件中包含NSMicrophoneUsageDescription键,Info.plist并为此键提供目的字符串。如果您的应用尝试访问任何设备的麦克风而没有相应的用途字符串,则您的应用会退出。
iOS 7.0及更高版本支持此密钥。

10. 访问设备加速度计

NSMotionUsageDescription:
NSMotionUsageDescriptionString- iOS)此键可让您描述应用访问设备加速度计的原因。当系统提示用户允许访问时,此字符串将显示为警报的一部分。

重要提示: 为了保护用户隐私,iOS 10.0上或之后链接的iOS应用程序访问设备的加速计,必须静态声明这样做的意图。在应用程序的文件中包含NSMotionUsageDescription键,Info.plist并为此密钥提供目的字符串。如果您的应用尝试访问设备的加速计而没有相应的用途字符串,则您的应用会退出。
iOS 7.0及更高版本支持此密钥。

11. 访问用户提醒

NSRemindersUsageDescription:
NSRemindersUsageDescriptionString- iOS)此键可让您描述应用访问用户提醒的原因。当系统提示用户允许访问时,此字符串将显示为警报的一部分。

重要提示: 为了保护用户隐私,iOS 10.0上或之后链接的iOS应用程序访问用户的提醒,必须静态声明这样做的意图。在应用程序的文件中包含NSRemindersUsageDescription键,Info.plist并为此密钥提供目的字符串。如果您的应用尝试在没有相应目的字符串的情况下访问用户的提醒,则您的应用会退出。
iOS 6.0及更高版本支持此密钥。

12. 访问Siri

NSSiriUsageDescription:
NSSiriUsageDescription(String- iOS)此键可让您描述应用向Siri发送用户数据的原因。您的应用第一次显式请求访问Siri时,系统会将此字符串显示为警报的一部分。如果用户与您的应用程序的第一次交互发生在Siri本身,则可以使用默认字符串。

重要提示: 为了保护用户隐私,iOS 10.0上或之后链接的iOS应用程序访问Siri,必须静态声明这样做的意图。在应用程序的文件中包含NSSiriUsageDescription键,Info.plist并为此密钥提供目的字符串。如果您的应用尝试在没有相应目的字符串的情况下访问Siri,则您的应用会退出。

13. 访问Apple语音识别服务器

NSSpeechRecognitionUsageDescription:
NSSpeechRecognitionUsageDescription(String- iOS)此键可让您描述应用程序将用户数据发送到Apple语音识别服务器的原因。当系统提示用户允许访问时,此字符串将显示为警报的一部分。

重要提示: 为了保护用户隐私,iOS 10.0上或之后链接的iOS应用程序将用户数据发送到Apple的语音识别服务器,必须静态声明这样做的意图。在应用程序的文件中包含NSSpeechRecognitionUsageDescription键,Info.plist并为此密钥提供目的字符串。如果您的应用尝试使用Apple的语音识别服务而没有相应的用途字符串,则您的应用会退出。

14. 访问用户的临床记录

NSHealthClinicalHealthRecordsShareUsageDescription:
NSHealthClinicalHealthRecordsShareUsageDescriptionString- iOS)。此密钥包含一个字符串,当您的应用请求访问用户的临床记录时,该字符串将显示在授权提示中。该字符串应提供访问这些记录的理由。

重要提示:iOS 12.0及更高版本支持此密钥。

15. 访问用户的HomeKit配置数据

NSHomeKitUsageDescription:
NSHomeKitUsageDescription(String- iOS,watchOS)。使用此键可以描述应用访问用户的HomeKit配置数据的原因。当系统提示用户允许访问时,此字符串将显示为警报的一部分。

重要提示: 为了保护用户隐私,iOS 10.0上或之后链接的iOS应用程序访问用户的HomeKit配置数据,必须静态声明这样做的意图。在应用程序的文件中包含NSHomeKitUsageDescription键,Info.plist并为此键提供目的字符串。如果您的应用尝试更改用户的HomeKit配置数据而没有相应的用途字符串,则您的应用会退出。