iOS 隐私清单和三方SDK签名适配

一、背景

1. 苹果关于隐私更新的新闻-2023/06/05

推出了两项新功能: 隐私清单和SDK签名

2. 苹果关于隐私更新的新闻-2023/12/07

从 2024 年春季开始,如果你提交的新 App 或 App 更新添加了 App Store 上的 App 中常用的第三方 SDK,那么你需要包含相应 SDK 的隐私清单。将 SDK 用作二进制文件依赖项时,也需要包含签名。

3. 苹果关于隐私更新的新闻-2024/02/29

  1. 自 3 月 13 日起,App 使用了需要声明批准原因的 API,但你未在 App 的隐私清单中提供批准原因,会通过电子邮件告知。
  2. 自 5 月 1 日起,你需要就你的 App 代码使用的所列 API 提供批准原因,才能将新 App 或更新 App 上传到 App Store Connect。

从上述说明来看,我们的APP需要在5 月 1 日起提交审核时需要适配隐私清单和签名。

二、隐私清单和SDK签名

2.1 清单文件文件是什么

苹果通过隐私文件来让三方SDK或APP来列举和描述收集的数据和使用的需要说明原因的API。

隐私清单:developer.apple.com/documentati...

需要适配的三方SDK列表:developer.apple.com/cn/support/...

2.2 隐私清单文件填写

  • 清单文件需要使用xcode15来创建,文件中的内容如图

创建之后可以根据项目情况填写key对应的值,填写时从已有选项中选择。

  • 隐私清单文件中键值对说明
Key 说明
NSPrivacyTracking 布尔值,指示您的应用程序或第三方SDK是否使用应用程序跟踪透明度框架下定义的数据进行跟踪。官方文档
NSPrivacyTrackingDomains 一组字符串,列出您的应用程序或第三方SDK连接到的参与跟踪的互联网域。如果用户未通过应用程序跟踪透明度框架授予跟踪权限,则对这些域的网络请求将失败,您的应用程序将收到错误. 如果将NSPrivacyTracking设置为true,则需要在NSPrivaceTrackingDomains中至少提供一个internet域;否则,您可以提供零个或多个域。
NSPrivacyCollectedDataTypes 一组字典,用于描述应用程序或第三方SDK收集的数据类型。有关要在字典中使用的键和值的信息,请参阅描述隐私清单中的数据使用。
NSPrivacyAccessedAPITypes 使用了苹果需要说明原因的api时需要填写,请参阅描述所需原因API的使用。
  • NSPrivacyCollectedDataTypes的示例图
  • 需要说明原因的API
  • File timestamp APIs
  • System boot time APIs
  • Disk space APIs
  • Active keyboard APIs
  • User defaults APIs
  • 示例图

2.3 SDK 签名

对于提供二进制版本的三方SDK,需要第三方提供包含签名的SDK。当你在 App 中采用第三方 SDK 的新版本时,Xcode 将验证它是否由同一开发者签名,从而提高软件供应链的完整性。

签名其实分 Apple Developer Program 签名和自签名。经过签名认证后的 SDK ,在 Xcode15 会显示对应的 Signature 信息,如果一旦发现本次前面和上次不一致,那么Xcode 就会让编译失败并弹出警告。 Apple 鼓励所有 SDK 使用签名, 如果是在苹果三方SDK列表中的作为二进制依赖项,需要提供签名。

2.4 SDK 签名做法

这里列举一下相关命令行

bash 复制代码
# 1.搜索指定目录下是否包含_CodeSignature签名目录
find -name -type d "_CodeSignature"
# 2.列出本地与代码签名相关的证书
security find-identity -v -p codesigning
# 3.对SDK进行签名,苹果视频https://developer.apple.com/videos/play/wwdc2023/10061
codesign --timestamp -v --sign "Your Certificate Name" </path/to/SDK.framework>
# 4.验证签名(可以看到相关签名信息)
codesign -dvvv </path/to/SDK.framework>

三、适配之后苹果会做哪些事

要求SDK提供隐私清单的作用是帮助开发者了解其如何使用隐私数据及相关API。开发者可以在Xcode 将第三方 SDK 中的隐私清单合并,然后导出一个 PDF 报告汇总,在向 App Store 提交审核时,填写隐私标签时可以参考报告。

在appstore填写的隐私标签最终会在用户的appstore下载页展示出来。

对于隐私文件中提交的需要说明原因api的使用情况是苹果审核的一个参考。自 3 月 13 日起,App 使用了需要声明批准原因的 API,但你未在 App 的隐私清单中提供批准原因,会通过电子邮件告知。 自 5 月 1 日起,你需要就你的 App 代码使用的所列 API 提供批准原因,才能将新 App 或更新 App 上传到 App Store Connect。

参考文章:

相关推荐
艾小逗12 小时前
uniapp快速入门教程,内容来源于官方文档,仅仅记录快速入门需要了解到的知识点
小程序·uni-app·app·es6
程序者王大川8 天前
【移动端】Flutter与uni-app:全方位对比分析
flutter·uni-app·app·nodejs·全栈·dart·移动端
wusp199410 天前
基于Python的电商导购APP设计与实现
python·app·电商·导购·设计与实现
YesPMP平台官方20 天前
掀起社交娱乐新浪潮!AI如何应用到短视频APP?
大数据·人工智能·ai·app·ar·短视频
AUV110722 天前
推荐一款强大的 macOS 剪贴板增强工具:CleanClip
macos·app·效率工具·实用工具·剪贴板管理
YesPMP官方账号24 天前
如何满足业主多元需求?开发物业APP,打造智能社区生活
大数据·小程序·app·软件开发·物业
Mendix1 个月前
如何用不到一分钟的时间将Excel电子表格转换为应用程序
低代码·app·excel·mendix·西门子低代码·it·快速开发
sunny_1 个月前
第三章 实战案例:构建一个音乐播放器
前端·electron·app
YesPMP众包平台1 个月前
夏季出游|酒店民宿小程序搭建,一键预订超city!
微信小程序·app·软件开发·民宿小程序·酒店小程序
Virtual091 个月前
第一进行uni-app开发,没想到居然这么舒服!
前端·uni-app·app