Apple 隐私:隐私清单文件全面指南
本文介绍 Apple 生态中的隐私清单(Privacy Manifest)文件,强调其对透明度与合规的重要性(尤其是即将于 2024 年生效的强制要求),概述实施步骤,并阐明其在提升用户信任和遵守法规方面的作用。
引言
隐私清单(Privacy Manifest)文件是开发者声明移动应用及其依赖项相关隐私实践的一种新方式。
这些文件允许第三方 SDK 开发者披露其框架的隐私实践,从而保持透明度并提升隐私标准。 鉴于隐私对用户和开发者都至关重要,理解并实施隐私清单文件已成为满足 Apple 隐私要求不可或缺的一环。
即将于 2024 年 5 月生效的强制要求规定,在 App Store Connect 上提交的所有新应用和更新都必须为常用 SDK 包含隐私清单,这些文件的重要性将因此大幅提升。开发者现在需要理解隐私清单文件的概念和用途,并掌握创建和实施它们的步骤,以达到 Apple 更高的隐私与安全基准。 本指南旨在揭开这一过程的神秘面纱,帮助开发者全面理解隐私清单文件,并提供关于采用和实施它们的实用见解。
理解隐私清单文件
隐私清单对于开发者清晰说明应用依赖项的隐私实践至关重要。 这些文件名为 "PrivacyInfo.xcprivacy",用于声明 SDK 收集的数据类型、数据用途、是否与用户关联,以及是否遵守 App Tracking Transparency 政策。它们具有多重作用:
1- Data Description:列出所收集数据的类别,例如联系信息、健康与健身数据、财务信息等。
2- Usage Explanation:详细说明每种数据类型的用途,无论是用于分析、广告、应用功能还是其他用途。
3- Tracking Disclosure:这些文件会注明数据是否用于追踪目的,帮助开发者遵守隐私法规。
这些清单关乎合规与透明度,让开发者以及最终的用户能够清楚地了解数据的使用情况。
从 May 2024 起,App Store 上的应用所使用的所有第三方 SDK 都必须包含隐私清单,从而确保整个平台具备更高的隐私和安全标准。这一举措是在 Apple Store 生态系统中增强用户信任和数据完整性的更广泛行动的一部分。
隐私清单文件的当前采用情况
此次分析涵盖了多个行业、具有不同特征的 3000 多个 iOS 应用。
截至 2024 年 4 月,下图揭示了 iOS 应用开发中一个令人担忧的趋势:大多数应用要么尚未实施隐私清单文件,要么仅部分实施。

在银行业,隐私清单文件的实施大多仍未完成,只有少数应用已完全集成,这表明在报告期内,这一关键行业的隐私措施可能存在缺口。

在医疗健康行业,与银行业相比,已在实施隐私清单文件方面取得进展的应用比例更高,但仍有相当一部分尚未开始实施,这表明在这一敏感行业中确保全面隐私措施仍面临持续挑战。

创建并实施您的隐私清单
为您的应用创建并实施隐私清单涉及若干步骤,以确保符合 Apple 的指南。以下是一份简明指南,帮助开发者完成这一过程:
创建并实施隐私清单的步骤:
-
第 1 步:使用 Xcode 15 或更高版本,通过
New > File > iOS > Resource > App Privacy.创建该文件。
图 1:添加隐私清单文件 -
第 2 步:将新创建的隐私清单文件添加到应用的 bundle 资源中,并确保它位于根目录。

图 3:选择隐私清单文件的 target

- 第 3 步:在该属性列表文件的顶层,向字典中添加以下键:
NSPrivacyTracking:一个布尔值,表示您的应用或第三方 SDK 是否将数据用于 App Tracking Transparency 框架所定义的追踪。NSPrivacyTrackingDomains:一个字符串数组,列出您的应用或第三方 SDK 所连接的、从事追踪的互联网域名。如果用户未通过 App Tracking Transparency 框架授予追踪权限,发往这些域名的网络请求将会失败,您的应用会收到一个错误。 如果将 NSPrivacyTracking 设置为 true,则需要在 NSPrivacyTrackingDomains 中提供至少一个互联网域名;如果设置为 false,则可以提供零个或多个域名。NSPrivacyCollectedDataTypes:一个字典数组,描述您的应用或第三方 SDK 收集的数据类型。数据用途类别包括:第三方广告、开发者的广告或营销、分析、产品个性化、应用功能、其他用途。NSPrivacyAccessedAPITypes:一个字典数组,描述您的应用或第三方 SDK 访问的、被指定为需要说明访问理由的 API 类型。需要说明理由的 API 列表包括:文件时间戳 API、系统启动时间 API、磁盘空间 API、活动键盘 API、User defaults API。

- 第 4 步:添加 NSPrivacyCollectedDataTypes 列表,包括类型以及您的应用或第三方 SDK 进行访问的理由列表。

-
第 5 步:添加 NSPrivacyAccessedAPITypes 列表,包括类型以及您的应用或第三方 SDK 进行访问的理由列表。

图 6:添加 NSPrivacyAccessedAPITypes -
第 6 步:确认隐私清单已包含在应用的构建产物或归档中,并验证它属于对应的 target。
NSPrivacyCollectedDataTypes 的关键组成部分
以下是 NSPrivacyCollectedDataTypes 类别中应包含的关键组成部分:
NSPrivacyCollectedDataType:指定所收集的数据类型(例如位置、联系人)。NSPrivacyCollectedDataTypeLinked:一个布尔值,表示数据是否与用户身份关联。NSPrivacyCollectedDataTypeTracking:一个布尔值,表示数据是否用于追踪目的。NSPrivacyCollectedDataTypePurposes:列出数据收集的理由,确保与 Apple 预定义的用途保持一致。
NSPrivacyAccessedAPITypes 的关键组成部分
- 隐私清单必须明确说明应用及其依赖项所使用的具体 API。
- 对于每个 API,需清楚说明使用该 API 的理由,并确保其符合 Apple 的指南。
追踪域名的管理
隐私清单通过编目追踪域名来帮助管理网络连接。 在 iOS 17 中,除非用户已明确授予权限,否则任何未经批准的追踪连接都会被自动阻止,从而强化隐私保护。
创建并实施您的隐私清单
列出所有网络连接以识别追踪域名

运行动态扫描时,Ostorlab 会列出应用与之通信的所有网络域名。这是识别用于追踪的域名的重要依据。

分析环境(Analysis Environment)中的 API 部分会列出发往这些域名的请求/响应。利用这些信息,您可以将域名列表添加到 NSPrivacyTrackingDomains 中。
列出应用中使用的所有 API

除了域名之外,Ostorlab 还会列出应用中使用的所有 API。如果这些 API 属于 Apple 定义的需要说明理由的 API,您需要将它们添加到 NSPrivacyAccessedAPITypes 中。
识别缺少隐私清单文件的 SDK
在静态分析期间,Ostorlab 会检查应用及其所有 Framework 中是否存在隐私清单文件,并报告缺少隐私清单文件的项。

结论
对于需要应对 Apple 隐私要求的开发者来说,理解并实施隐私清单文件至关重要。本文介绍了这些文件在提升透明度、遵守 Apple 隐私标准方面所发挥的关键作用,并逐步说明了如何创建这些文件并将其纳入应用开发流程。随着 2024 年 5 月强制要求的临近,掌握隐私清单文件的重要性怎么强调都不为过。确保应用合规不仅符合监管预期,还能通过坚持高标准的隐私与安全来赢得用户的信任。 在开发者为满足这些要求做准备时,务必持续审查和验证应用的隐私清单,使其符合 Apple 的最新指南。为协助完成这一步,您可以考虑在 Ostorlab.co 中扫描您应用的 IPA,以验证隐私清单文件的完整性与合规性。这样做不仅能维护您的应用在 App Store 上的良好地位,还能强化您对隐私的承诺——隐私是当今数字生态系统的基石。践行这些做法,意味着我们作为开发者社区,不仅是在为功能编写代码,更是在捍卫用户的隐私与安全,为应用开发的未来树立标准。
标签:
privacy