完整的iOS应用程序权限列表

不同的网站( 例如 )解释说,iOS权限模式是这样工作的:所有应用程序都有一组基本权限(包括Internet访问权限)。 如果在运行期间需要额外的权限,则会询问用户是否授予或拒绝该权限。

iOS知道哪些权限? 什么属于基本的权限设置? 没有用户同意可以做什么? 基本上我正在寻找一个类似于这个名单 ,只为iOS

与其他答案相比,在运行时有一个正式的权限列表。 它在iOS安全指南 (p。62)中:

iOS有助于防止未经授权的应用访问用户的个人信息。 此外,在“设置”中,用户可以查看他们允许访问哪些应用程序访问某些信息,以及授予或撤销将来的访问权限。 这包括访问:

  • 往来
  • 麦克风
  • 日历
  • 相机
  • 提醒
  • HomeKit
  • 相片
  • 健康
  • 运动活动和健身
  • 语音识别
  • 位置服务
  • 蓝牙共享
  • 媒体库
  • 社交媒体帐户,如Twitter和Facebook

如果用户login到iCloud,应用程序默认被授予访问iCloud Drive的权限。 用户可以在“设置”中控制每个应用在iCloud下的访问权限。 另外,iOS提供的限制可以防止应用程序与MDM安装的帐户之间的数据移动,以及用户安装的帐户之间的移动。

自iOS 10以来,需要为请求的权限提供说明。 在框架的开发者文档中,你会看到是否需要这样的描述,访问它的API会导致一个权限提示(或者如果没有给出描述,则会导致崩溃),例如参见Contacts框架的开发者文档中的提示:

重要

在iOS 10.0或之后链接的iOS应用必须在其Info.plist文件中包含它需要访问的数据types的使用说明密钥,否则将会崩溃。 要特别访问联系人数据,它必须包含NSContactsUsageDescription

另外,每个iOS / macOS版本的可用权限的一个很好的来源是信息属性列表键参考 (search包含在单词中的UsageDescription )。

您可以添加到您的info.plist文件中的所有密钥都列在Apple文档中并进行了描述。

对于大多数背景模式,您需要在Info.plist中添加一个键,以指示应用程序想要在后台运行代码。

但是这个信息并不是用来询问用户的权限,只是为了保证设备的兼容性。

只有一些服务需要用户权限(如地理位置和通知服务),这些服务会在您的应用程序第一次尝试使用相应的API时自动询问用户。

您可以在沙箱内执行任何操作。 因此,默认情况下允许互联网访问和存储文件,但试图与另一个应用程序交谈,例如阅读相机胶卷或显示推送通知不是。

似乎没有可用的正式名单。

到目前为止,我发现这些权限,其中的粗体是基本权限:

  • 互联网
  • 访问地理位置
  • 使用通知服务(接收和/或显示?)
  • 与其他应用程序交谈
  • 访问相机
  • 访问麦克风
  • 访问电话联系人列表
  • 访问日历
  • 访问照片
  • 安排提醒