苹果在2023年发布了关于隐私的重大更新,包括隐私清单和SDK签名。自2024年春季起,这些新要求将影响到所有iOS应用的提交和审核过程。以下是如何适配隐私清单和三方SDK签名的详细信息和步骤:
一、背景
- 隐私更新新闻
- 2023/06/05:苹果推出了隐私清单和SDK签名的新功能。
- 2023/12/07:从2024年春季开始,应用需要在App Store中声明第三方SDK的隐私清单,并提供SDK签名。
- 2024/02/29:自3月13日起,如果App使用了需要说明原因的API但未在隐私清单中提供原因,将通过电子邮件通知。自5月1日起,提交的新应用或更新必须在隐私清单中提供所有相关API的批准原因。
二、隐私清单和SDK签名
2.1 隐私清单是什么?
隐私清单是一种文件,要求开发者列出和描述应用程序及其第三方SDK收集的数据和使用的需要说明原因的API。它有助于提升数据隐私透明度,确保用户了解他们的数据如何被使用。
- 隐私清单文件:通过Xcode 15创建。
- 清单文件包含的键值对:
NSPrivacyTracking
:布尔值,指示应用程序或SDK是否使用应用程序跟踪透明度框架进行数据跟踪。NSPrivacyTrackingDomains
:列出与跟踪相关的互联网域名。NSPrivacyCollectedDataTypes
:描述收集的数据类型。NSPrivacyAccessedAPITypes
:列出需要说明原因的API类型。
- 需要说明原因的API示例:
- File timestamp APIs
- System boot time APIs
- Disk space APIs
- Active keyboard APIs
- User defaults APIs
2.2 隐私清单文件填写
- 使用Xcode 15创建隐私清单文件:
- 打开Xcode,选择您的项目。
- 创建一个新的隐私清单文件,并填写相关的键值对。
- 确保从已有选项中选择正确的值。
- 填写关键内容:
- 确保
NSPrivacyTracking
设置正确。 - 在
NSPrivacyTrackingDomains
中列出相关的互联网域名(如果需要)。 - 填写
NSPrivacyCollectedDataTypes
和NSPrivacyAccessedAPITypes
,以说明应用程序或SDK收集的数据类型和使用的API。
- 确保
2.3 SDK 签名
对于提供二进制版本的第三方SDK,必须包含签名以提高软件供应链的完整性。签名分为Apple Developer Program签名和自签名。
- 签名步骤:
- 搜索签名目录:bash复制代码
find . -name "_CodeSignature" -type d
- 列出代码签名证书:bash复制代码
security find-identity -v -p codesigning
- 对SDK进行签名:bash复制代码
codesign --timestamp -v --sign "Your Certificate Name" /path/to/SDK.framework
- 验证签名:bash复制代码
codesign -dvvv /path/to/SDK.framework
- 搜索签名目录:bash复制代码
2.4 SDK 签名的目的
签名SDK确保应用在使用SDK时,SDK的版本和开发者身份不会发生变化。如果SDK签名不匹配,Xcode会发出警告并可能导致编译失败。这种签名机制有助于防止恶意代码注入和确保SDK的完整性。
三、适配后的苹果审核过程
- 隐私清单的使用:
- 提交应用时,开发者需要在Xcode中合并第三方SDK的隐私清单,然后导出一个PDF报告。
- 在App Store提交审核时,填写隐私标签可以参考这个报告。
- 用户下载页面的隐私标签将展示您在隐私清单中填写的信息。
- 需要说明原因的API:
- 自3月13日起,如果应用使用了需要说明原因的API但未在隐私清单中提供原因,苹果将通过电子邮件通知开发者。
- 自5月1日起,提交的新应用或更新必须在隐私清单中提供使用的API的批准原因,才能上传到App Store Connect。
总结
为了确保符合苹果的隐私政策,开发者需要适配隐私清单并确保第三方SDK的签名。隐私清单帮助开发者明确定义应用程序和SDK的数据收集和使用情况,而SDK签名则保证了应用的安全性和完整性。通过遵循这些要求,可以提高应用的透明度并顺利通过苹果的审核。