伴随着 iOS 14.5 的发布,苹果在人机界面指南(Human Interface Guidelines)中增加了 访问用户数据(Accessing User Data) 的内容。本文译自https://developer.apple.com/design/human-interface-guidelines/ios/app-architecture/accessing-user-data/
用户隐私至关重要。为了帮助人们信任您的 App,关键是要对您的 App 所需要的隐私相关数据和资源以及如何使用这些数据保持公开透明。例如,你必须请求权限才能访问:
个人数据,包括:位置、健康、财务、联系人和其他个人识别信息。 用户生成的内容,如:电子邮件、信息、日历数据、联系人、游戏信息、Apple Music 活动、HomeKit 数据以及音频、视频和照片内容。 受保护的资源,如:蓝牙外围设备、家庭自动化功能、Wi-Fi 连接和本地网络。 重要提示 从 iOS 14.5 和 iPadOS 14.5 开始,如果你想跟踪用户或访问其设备的广告标识符,您必须使用 AppTrackingTransparency framework 来请求用户的许可。要了解更多信息,请参阅 用户隐私和数据使用(User Privacy and Data Use) 。
当您提交新的或更新的 App 时,您必须提供有关 App 的隐私做法和你收集的隐私相关数据的详细信息,以便 App Store 能够在您的产品页面上显示这些信息。(您可以在 App Store Connect 中随时管理这些信息。)人们在下载您的 App 之前,会根据您产品页面上的隐私细节来做出知情的决定。要了解更多信息,请参见请查看 App Store 上的 App 隐私细节( App privacy details)。
一款 App 的 App Store 产品页面有助于人们在下载前了解该 App 的隐私做法。 申请访问用户数据和资源的许可 iOS 系统提供了一个标准的权限请求对话框(Alert),让人们查看您对访问他们的私人信息或受保护资源的请求。他们也可以查看你的请求并更新他们在隐私设置中的选择。您提供一个描述信息,说明你的 App 为什么需要这些项目,并决定何时显示权限请求对话框(Alert);iOS 系统处理权限请求对话框(Alert)体验的所有其他部分。这里有几个例子:
案例 1:
案例 2:
案例 3:
写一份清楚地描述您的 App 如何使用您所需要的数据的文案。 标准的权限请求对话框(Alert)将在您的 App 名称之后,人们用来授予或拒绝其权限的按钮之前显示您的文案(称为 目的字符串 (purpose string) 或 用途说明字符串 (usage description string ))。争取让您的文案用一个简短、完整的句子,看起来直截了当、具体、易懂。使句子大小写,避免被动语态,并在结尾处加上一个句号。关于开发者的指导,请参阅 请求访问受保护资源(Requesting Access to Protected Resources) 和 App Tracking Transparency。
只有当您的 App 明确需要访问数据时才请求许可。 人们对索要个人信息产生怀疑是很正常的,尤其是在没有明显需要的情况下。仅当人们实际使用需要其数据的功能时才请求许可。例如,您可能只在用户想知道如何到达您的商店地址时,才要求访问设备的位置信息。
小贴士 在尝试访问位置信息之前,请检查系统确认是否启用了位置服务。使用这些信息,您可以在必要时避免显示权限请求对话框(Alert)。有关开发人员指南,请参阅请求位置服务授权(Requesting Authorization for Location Services)。
只有当数据是您的 App 运行所必需的时候才请求允许。当您的 App 需要信息的原因显而易见时,人们不太可能觉得被请求打扰。如果您想在人们启动您的 App 时立即进行 App 跟踪(App tracking,译者注:一种获得数据给用户打上标记便于之后做个性化推送的技术),您必须在收集任何追踪数据之前显示系统提供的权限请求对话框(Alert)。
在权限请求对话框(Alert)之前显示自定义消息 理想情况下,人们基于上下文已经知道你请求其权限的原因,但如果有必要提供更多的细节,则可以在权限请求对话框(Alert)出现之前显示自定义消息。
请清楚地说明,打开系统权限请求对话框(Alert)是人们在自定义消息屏幕上可以采取的唯一操作。 人们可以把预先提示信息(pre-alert message)理解为一种缓兵之计,所以让他们迅速地读完信息并查看系统权限请求对话框(Alert)是至关重要的。如果在隐私相关的权限请求之前显示一个自定义屏幕,那么它必须只提供一个操作,这个操作必须显示系统权限请求对话框(Alert)。使用像 “继续“这样的词来命名这个动作;不要使用“允许”或其他可能使人们认为正在授予权限或在自定义屏幕中执行其他操作的术语。
澄清追踪请求 App 跟踪(App tracking)是一个敏感问题。在某些情况下,显示明确描述跟踪好处的定制信息可能是有意义的。
不要在系统提供的权限请求对话框(Alert)之前使用可能会迷惑或误导人们的自定义消息。 人们有时会快速点击以消除权限请求对话框(Alert)而不阅读它们。利用这些行为影响选择的自定义消息屏幕将导致 App Store 审核被拒绝。
有几种被禁止的自定义信息设计会导致拒绝。比如:提供奖励、显示一个看起来像请求的屏幕、显示权限请求对话框(Alert)的图片、以及在权限请求对话框(Alert)背后的屏幕上做注释(如下图所示)。有关指导,请参阅 App Store 审核指南 (App Store Review Guidelines):5.1.1 (iv).
反面案例——提供奖励:
不要给予同意请求的奖励。你不能因为给予用户许可而给予补偿,你也不能在用户允许你追踪他们之前,拒绝提供功能或内容,或者让你的 App 无法使用。 反面案例——仿造请求:
不要显示反映系统权限请求对话框(Alert)功能的自定义消息。特别是不要创建一个按钮标题使用“允许”或类似的文案,因为人们在预先提示屏幕上不能允许任何东西。 反面案例——权限请求对话框图片:
不要显示标准权限请求对话框的图片,并以任何方式修改它。 反面案例——权限请求对话框注释:
不要绘制视觉提示,将人们的注意力吸引到系统权限请求对话框的允许按钮上。