用户隐私是至关重要的。为了使人们信任你的应用,一定要坦诚公开隐私相关的数据和资源需求,以及你的应用将如何使用这些数据。比如说,你必须获得用户的同意后,才能访问以下数据:

  • 个人数据,比如地点、健康、财务、联系人以及其他具有个人特征的信息。
  • 由用户产生的数据,比如邮件、信息、日历数据、联系人、游戏数据、Apple Music活动、HomeKit数据、还有音频、视频、照片内容。
  • 受保护的资源,比如蓝牙外设、家庭自动化功能、Wi-Fi连接、还有本地网络。
  • 设备功能比如相机和麦克风。

注意 从iOS14.5和iPadOS14.5开始,如果你想要追踪用户或者访问设备的广告识别码,你必须使用AppTrackingTransparency framework来请求用户同意。了解更多信息,请查看 User Privacy and Data Use

当你提交了一个全新应用,或者新版本的应用,你必须提供详细的隐私使用情况,以及你需要收集的涉及隐私的数据。这些信息会被AppStore展示在你的产品页面上。(任何时候你都可以在App Store Connect中管理这些信息。)产品介绍页面上的隐私使用细节,将会帮助用户做出是否下载的决定。要了解更多信息,可以查看 App privacy details on the App Store。

image (4).png

请求访问许可 (Requesting Access Permission)

你必须获得用户的许可,才能访问用户数据和受保护的资源。

只有当你的应用明确需要访问某些数据和资源时,再申请许可。用户在遇到访问个人数据或设备功能的请求时,感到怀疑是很正常的。尤其是很多时候,看不到显而易见的理由。理想状态下,最好等到用户用到应用的特定功能时,再向用户发出申请。关于位置信息申请,使用位置按钮可以让用户通过一种即时操作的方式来分享他们的位置信息。更多信息,请查看使用位置按钮。

只有当某些数据或资源,对于你的应用运行不可或缺时,才可在启动时申请许可。当你要在启动时请求访问数据,只有陈述了明确的原因,才可能不至于使用户感到那么不安。如果你要在应用启动的时候就开始应用跟踪,那么你必须在收集追踪信息前,展示系统提供的警告。

系统提供的标准化警告,可以让用户看到你关于访问隐私信息和受保护资源的请求。你需要提供一份说明,描述为何你的应用需要这些信息,而系统会把这条说明展示在警告中。用户也可以在设置>隐私中查看你的说明,并更改他们的选择。

撰写文案来描述你的应用如何使用请求的数据或资源。标准化的警告弹窗会在应用名称,和操作按钮之间的区域展示这些文案(称为目的说明 [purpose string] 或描述说明 [description string] )。尽可能把文案写的短小、直接、具体、易于理解。使用句首字母大写,避免被动语态,同时记得在句子结尾写上句号。开发者可以查看 Requesting Access to Protected ResourcesApp Tracking Transparency

目的说明案例 备注
应用会在夜间录音以记录您的鼾声。 使用主动语态的句子,清晰的形容你的应用如何,以及为什么要手机这些数据。
✖️ 为了提供更好的体验,需要获取麦克风访问权限。 用被动语态的句子解释含糊且不明确。
✖️ 打开麦克风访问权限。 祈使语气的句子无法提供任何解释。

以下是标准的系统警告的几个例子

image (5).png

使用位置按钮 (Using the Location Button)

在iOS和更高级别的系统里,定位功能框架(Core Location)提供了一个按钮。通过此按钮,用户可以在任务需要的时候,临时赋予应用访问位置信息的权限。虽然位置按钮可能与你的界面风格并不一致,但它能够以最易于辨识的方式,告知用户共享位置信息的请求。

image (6).png

位置按钮可以将访问设备地址的权限临时授权给应用。如果你的应用没有获得授权,点按位置按钮相当于用户在标准警告弹窗中选择“允许一次”(Allow Once)。如果用户之前选择了“当应用运行时”(While Using the App),点击应用按钮并不改变应用的状态。开发者可以查看LocationButton (SwiftUI) 和CLLocationButton (Swift)

当用户第一次打开你的应用,并且点击了位置按钮,系统会显示一个标准警告弹窗。它会解释位置按钮会如何限制应用对位置信息的访问,还会提醒用户在地址分享开始的时候,查看界面上的位置信息指示器。

image (7).png

在用户确定理解了按钮的功能后,他们就可以点击地址按钮,给予应用一次性、临时的地址信息访问权限。虽然每次退出应用后,由位置按钮发起的授权都会失效,但用户重新打开时,并不需要再次告诉系统他们已经理解了这个按钮的功能。

通过地址按钮,让用户能在使用特定功能时,以一种轻量级的方式分享地址信息。举例来说,你的应用也许能让用户把位置信息放到短信或邮件中,能帮用户找到商店,辨认建筑、植物或动物,同时记录所在的位置。如果你认为用户需要经常给应用“允许一次”(Allow Once)的权限,则可以考虑使用位置按钮来做这件事,减少警告弹窗的出现。

考虑定制位置按钮,使其与应用的整体风格相契合。具体来说,你可以:

  • 在系统提供的文案中,选择最恰当的一种来形容你的功能,比如“当前位置 (Current Location)”或“分享我的当前位置 (Share My Current Location)”。
  • 选择有填充色或只有描边的位置图标。
  • 为图标及文字、按钮背景分别选择颜色。
  • 调整按钮的圆角半径。

为了使得用户能够轻易认出,并信任位置按钮,你无法进行其他的视觉调整。系统会保证位置按钮清晰易读。如果出现了配色对比度过低,或者透明度太高这样的问题,系统会发出警告。除了这些影响识别的问题,你还应该保证文字可以恰当的嵌入按钮中。比如说,对于各种大小、各种语言的文字,按钮都应该足够大以便容纳它们。在所有情况中,要避免按钮文字出现删节和显示不全的情况。

要点 如果系统发现你在使用位置按钮的时候,向用户传达的信息与实际情况不符,即使用户点击了位置按钮,系统也不会授予应用位置权限。虽然这样的按钮可以启动其他的具体功能,但如果它运行的方式与用户期待不同,可能会使得用户对你的应用失去信任。

在音乐雷达框架应用 (ShazamKit)中使用麦克风

音乐雷达框架 (ShazamKit) ,通过将音频片段与自有曲库,或自定义曲库中的声音匹配,实现了音频识别功能。在iOS15和更新版系统中,应用可以通过音乐雷达框架来实现以下功能:

  • 通过将画面与正在播放的音乐相匹配,增强应用的使用体验。
  • 对于有听力障碍的用户,通过提供隐藏式字幕(带有解释意味的字幕)或手语的方式,来让他们更好地理解媒体的内容。
  • 在线上学习或购物的过程中,使应用体验与虚拟内容完美协同。

如果你需要设备的麦克风获取音频片段,实现相应的识别功能,你必须请求用户的同意。和其他所有类型的请求一样,一定要让用户明白你为何请求访问某项权限,更多信息,查看请求访问许可 (Requesting Access Permission)

image (8).png

在获得许可,能够使用麦克风来驱动音乐雷达框架的功能时,你仍应该遵守以下规范:

尽早停止录制。当用户允许你的应用记录音频并进行识别,它们并不想希望麦克风一直运行下去。为了保护用户隐私,只录制你需要的内容。

允许用户选择是否将应用识别出的歌曲存储到他们的iCloud资源库 (library)。如果你的应用可以将识别出的歌曲存储到iCloud,让用户可以在一开始就作出决定。虽然音乐识别控件和音乐雷达应用都将你的应用作为歌曲来源,用户还是更喜欢掌控哪些应用可以把文件保存到他们的资源库,哪些不能。

开发者可以查看音乐雷达框架 (ShazamKit)

在警告弹窗前显示定制化的内容

理想状态下,用户根据软件整体的情况,就可以了解到你为何请求某些许可。但如果有必要提供一些附加说明,你也可以在警告弹窗出现之前,展示定制化的内容来进行解释。

用户在这个定制化的信息页中,除了打开系统警告弹窗,无法进行其他操作。用户有可能认为警告前的信息,可能只是为了拖延。所以,让用户能快速地跳过这一页,查看系统警告是十分重要的。如果你在隐私相关的请求前展示了一个定制化页面,则它只能提供一项操作,即展示系统警告弹窗。使用像“继续 (Continue)”这样的词来描述这一操作。不要使用“允许”这样的词,这会使得用户误以为它们在进行授权,或者在该页面中进行其他的操作。

image (9).png

明确追踪请求

应用追踪是一个敏感的问题。在一些情形下,如为用户提供定制化信息时,进行追踪是符合常理的。这样的场景能够体现追踪的益处。

不要在系统提供的警告弹窗之前,展示容易造成困惑和误解的定制化信息。用户有时会快速地点击跳过警告,而不去仔细阅读它的内容。如果定制化的信息页面利用这种行为模式来影响用户的决策,那么它可能会被App Store的审核拒绝。

有一些定制化信息的设计会被审核拒绝。比如提供折扣和优惠、展示看起来像是请求的页面,显示警告图片,或是在警告弹窗后的页面增加注释。更多信息,查看App Ptore Review Guidelines: 5.1.1 (vi)

image (10).png