# Privacy

我们知道 Apple 非常注重对用户隐私的保护,app 在访问用户隐私(相册、位置、通讯录)前需要得到用户的授权,并且要非常明确地告知用户访问这些信息的原因,因此 iOS 在 info.plist 里提供了很多 property key,用于描述 app 访问隐私信息的原因。下面总结一下都有哪些 property key

此外 iOS 处理隐私权限稍显麻烦,我写了一个开源库 RxPrivacyManager (opens new window),用 RxSwift 简化了 iOS 处理隐私权限的流程,大家可以看一看。

# Location

# Location Always and When In Use Usage Description
NSLocationAlwaysAndWhenInUseUsageDescription
1

允许访问位置信息-始终时,需要这个 key

# Location When In Use Usage Description
NSLocationWhenInUseUsageDescription
1

允许访问位置信息-使用App时,需要这个 key

# Location Always Usage Description
NSLocationAlwaysUsageDescription
1

Deprecated,iOS 11之前用这个 key

# Location Usage Decription
NSLocationUsageDescription
1

用于 macOS

# Location Temporary Usage Description Dictionary
NSLocationTemporaryUsageDescriptionDictionary
1

iOS 14 新增

临时请求用户精确的位置信息,用于 requestTemporaryFullAccuracyAuthorization(withPurposeKey:) (opens new window)

# Camera

# Camera Usage Description
NSCameraUsageDescription
1

允许访问相机权限

# Photo Library

# Photo Library Usage Description
NSPhotoLibraryUsageDescription
1

允许读/写相册权限

# Photo Library Additions Usage Description
NSPhotoLibraryAddUsageDescription
1

允许相册权限

照片权限

  • 仅添加照片
  • 选中的照片
  • 所有照片

仅添加照片,表示 App 只有写权限(NSPhotoLibraryAddUsageDescription)

选中的照片所有照片,表示 App 有读和写的权限(NSPhotoLibraryUsageDescription)