完整的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时自动询问用户。
您可以在沙箱内执行任何操作。 因此,默认情况下允许互联网访问和存储文件,但试图与另一个应用程序交谈,例如阅读相机胶卷或显示推送通知不是。
似乎没有可用的正式名单。
到目前为止,我发现这些权限,其中的粗体是基本权限:
- 互联网
- 访问地理位置
- 使用通知服务(接收和/或显示?)
- 与其他应用程序交谈
- 访问相机
- 访问麦克风
- 访问电话联系人列表
- 访问日历
- 访问照片
- 安排提醒