应用架构 – 访问用户数据和资源
访问用户数据和资源
用户隐私至关重要。 为了帮助人们信任您的应用,对您需要的与隐私相关的数据和资源以及您如何使用它们保持透明至关重要。 例如,您必须请求访问权限:
个人数据,包括位置、健康、财务、联系方式和其他个人身份信息
用户生成的内容,例如电子邮件、消息、日历数据、联系人、游戏信息、Apple Music 活动、HomeKit 数据以及音频、视频和照片内容
受保护的资源,例如蓝牙外围设备、家庭自动化功能、Wi-Fi 连接和本地网络
摄像头和麦克风等设备功能
当您提交新的或更新的应用程序时,您必须提供有关您的隐私惯例和收集的隐私相关数据的详细信息,以便 App Store 可以在您的产品页面上显示信息。 (您可以随时在 App Store Connect 中管理此信息。)人们在下载您的应用之前,会使用您产品页面上的隐私详细信息做出明智的决定。 要了解更多信息,请参阅 App Store 上的应用隐私详细信息。
请求访问权限
在您可以使用用户数据或受保护资源之前,您必须获得人们的许可。
仅当您的应用程序明确需要访问数据或资源时才请求权限。人们很自然地怀疑对个人信息的请求或对设备功能的访问,尤其是在没有明显需要的情况下。理想情况下,等到人们实际使用需要访问权限的应用功能时再请求许可。对于位置请求,使用位置按钮可以让人们即时分享他们的位置;如需指导,请参阅使用位置按钮。
仅当您的应用程序运行需要数据或资源时才在启动时请求许可。当您的应用程序需要信息的原因很明显时,人们不太可能被启动时请求所困扰。如果您想在人们启动您的应用程序后立即执行应用程序跟踪,您必须在收集任何跟踪数据之前显示系统提供的警报。
系统提供标准警报,让人们查看您访问其私人信息或受保护资源的请求。您提供应用程序需要这些项目的原因的说明,系统会在警报中显示此说明。人们还可以在“设置”>“隐私”中查看您的描述并更新他们的选择。
撰写清楚描述您的应用如何使用您请求的数据或资源的副本。标准警报会在您的应用名称之后和人们用来授予或拒绝其权限的按钮之前显示您的副本(称为用途字符串或使用说明字符串)。目标是一个简短、完整、直接、具体且易于理解的句子。使用句子大小写,避免使用被动语态,并在结尾处包含句号。有关开发人员指南,请参阅请求访问受保护资源和应用跟踪透明度。
使用位置按钮
在 iOS 15 及更高版本中,Core Location 提供了一个按钮,以便人们可以授予您的应用临时授权以在任务需要时访问他们的位置。 尽管位置按钮的外观可能会因应用程序的 UI 而有所不同,但它始终以可立即识别的方式传达位置共享的操作。
位置按钮授予您的应用程序临时授权以请求设备位置。 如果您的应用没有授权状态,则点按位置按钮的效果与用户在标准提醒中选择“允许一次”的效果相同。 如果人们之前选择了“使用应用时”,则点按位置按钮不会更改应用的状态。 有关开发人员指南,请参阅 LocationButton (SwiftUI) 和 CLLocationButton (Swift)。
人们第一次打开您的应用程序并点击位置按钮时,系统会显示标准警报。 该警报可帮助人们了解使用该按钮如何限制您的应用对其位置的访问,并提醒他们共享开始时出现的位置指示器。
在人们确认他们了解按钮的操作后,他们只需在想要授予您的应用一次性访问他们位置的权限时点击位置按钮。 尽管当人们停止使用您的应用程序时,每次一次性授权都会过期,但他们无需再次确认他们对按钮行为的理解。
考虑使用位置按钮为人们提供一种轻量级的方式来分享他们特定应用功能的位置。 例如,您的应用程序可能会帮助人们将他们的位置附加到消息或帖子中、查找商店或识别他们在其位置遇到的建筑物、植物或动物。 如果您知道人们经常授予您的应用“允许一次”权限,请考虑使用位置按钮来帮助他们从共享位置中受益,而无需与提醒进行交互。
考虑自定义位置按钮以与您的 UI 协调。 具体来说,您可以:
* 选择系统提供的最适合您的功能的标题,例如“当前位置”或“共享我的当前位置”
* 选择填充或勾勒的位置字形
* 为标题和字形选择背景颜色和颜色
* 调整按钮的圆角半径
为了帮助人们识别和信任位置按钮,其他视觉属性不可自定义。 该系统还通过警告您有关低对比度颜色组合或过多半透明度等问题来确保位置按钮保持清晰。 除了解决此类问题之外,您还要负责确保文本适合按钮——例如,按钮文本在所有无障碍文本大小和翻译成其他语言时都应该适合而不会被截断。
在 ShazamKit 应用程序中使用麦克风
ShazamKit 通过将音频样本与 ShazamKit 目录或自定义音频目录进行匹配来启用音频识别。在 iOS 15 及更高版本中,应用程序可以使用 ShazamKit 来启用以下功能:
* 使用与当前播放的音乐类型相对应的图形来增强应用体验
* 通过提供与音频同步的隐藏式字幕或手语,让听力障碍人士可以访问媒体内容
* 将应用内体验与在线学习和零售等环境中的虚拟内容同步
如果您需要设备麦克风来获取应用程序识别的音频样本,您必须请求访问它。与所有类型的权限请求一样,帮助人们理解您请求访问的原因很重要;如需指导,请参阅请求访问权限。
在您获得访问启用了 ShazamKit 的功能的麦克风的权限后,请遵循以下准则。
尽快停止录音。当人们允许您的应用录制音频以进行识别时,他们不希望麦克风保持开启状态。为帮助保护隐私,请仅记录获取所需样本所需的时间。
让人们选择将您的应用程序识别的歌曲存储到他们的 iCloud 资料库。如果您的应用程序可以将已识别的歌曲存储到 iCloud,请让人们首先批准此操作。尽管音乐识别控件和 Shazam 应用程序都将您的应用程序显示为已识别歌曲的来源,但人们还是喜欢控制哪些应用程序可以将内容存储在他们的音乐库中。
有关开发人员指南,请参阅 ShazamKit。
在警报之前显示自定义消息
理想情况下,人们已经知道您为什么根据上下文请求他们的许可,但如果必须提供其他详细信息,您可以在警报出现之前显示自定义消息。
明确表示打开系统警报是人们可以在您的自定义消息屏幕中执行的唯一操作。人们可以将预警报消息解释为一种延迟策略,因此让他们快速关闭消息并查看系统警报至关重要。如果您在与隐私相关的权限请求之前显示自定义屏幕,则它必须仅提供一个操作,该操作必须显示系统警报。使用“继续”之类的词来为动作命名;不要使用“允许”或其他可能让人们认为他们在您的自定义屏幕中授予许可或执行其他操作的术语。
澄清跟踪请求
应用程序跟踪是一个敏感问题。 在某些情况下,显示明确描述跟踪好处的自定义消息可能是有意义的。
切勿在系统提供的警报之前使用可能混淆或误导人们的自定义消息。 人们有时会快速点击以关闭警报而不阅读它们。 利用此类行为影响选择的自定义消息屏幕将导致 App Store 审核拒绝。
有几种禁止的自定义消息设计会导致拒绝。 一些示例包括提供激励、显示看起来像请求的屏幕、显示警报的图像以及在警报后面对屏幕进行注释