去可网 > 社会 > 正文

​苹果 2024 春季新政策,对第三方 SDK 重拳出击

2024-01-05 12:52 来源:去可网 点击:

苹果 2024 春季新政策,对第三方 SDK 重拳出击

给 API 一个必要理由

自从 2021 年 iOS14.5 推出 IDFA 新规后,无论苹果是真的想保护消费者隐私,还是像很多 " 友商 " 评价的一样:本质是为了增加自己的广告服务收入,苹果对隐私保护的政策正在变得越来越严格。

当时 ATT 框架几乎给 iOS 手游和应用的推广带来毁灭性的打击,彼时还叫 Facebook 的 Meta 也在当年遭遇了巨大的滑铁卢,甚至在后续推出了包括 ASC 在内的一系列黑盒广告产品,但无可否认的是无论是电商还是应用和游戏,由于 eCPM 的大幅下滑,整个苹果的应用生态还是发生了翻天覆地的变化。

从隐私保护的角度来说,ATT 框架无疑是成功的,大量用户选择拒绝被追踪,但不可否认的是在整个 ATT 框架内依旧有一个相对明显的漏洞——安装在游戏和应用内的各种 SDK。

事实上,这些第三方 SDK 在很大程度上减轻了开发者的负担,但不可否认的是:无论是开发者还是用户,都很难发现各种 SDK 中隐藏的隐私风险,或者说的更直白一点,绕过 ATT 框架收集用户信息的可能性。

于是在 2023 年 WWDC 上,苹果就宣布了新的 SDK 隐私清单和签名,以便用户更好的了解第三方 SDK 使用和收集数据的方式。

与此同时,Xcode 会在开发者准备上架和分发 App 时,为开发提供一份该 App 中使用的所有的第三方 SDK 的隐私清单合并成一个简单的报告。通过该报告让开发者能够全面的了解自己使用的所有第三方 SDK,从而更轻松的创建准确的隐私标签。

这么做的原因也很简单,因为苹果要求所有的开发者如果使用第三方 SDK,那么他们就需要对 App 中 SDK 包含的所有代码负责,并且清晰地了解 SDK 是如何收集和使用用户数据的。从某种程度上来说,这就是将侵犯隐私和审查 SDK 的风险和责任转嫁给了开发者,因此提供一些便利自然也在情理之中。

总的来看,这次 2024 春季隐私清单政策主要就是两个关键:苹果创建了一个第三方 SDK 隐私清单和签名;以及开发者为什么要使用某个 API 流程。

01 隐私清单和 SDK 签名到底是什么?

首先来看隐私清单,其实所谓的第三方隐私清单(privacy manifest),本质上就是让 SDK 开发人员提供他们 SDK 是如何收集数据的,这样就能够让 App 开发者在集成各种 SDK 的时候,就能迅速得到一份详细的相关报告,从而避免额外手机不必要的用户数据。

更进一步来说,如果开发者在 App 内集成了不止一个 SDK,上文中所说的 Xcode 也能够简单的将第三方 SDK 中的多个隐私清单合并,最终导出一个报告汇总,从而让开发者能够清晰且全面的了解自己所使用的全部 SDK 是如何收集并应用这些数据的。

由此,开发者就能在提交 App Store 审核时,能够更好且更清晰的在后台提供自己 App 的隐私标签,在 App Store 的后台明确自己 App 的数据收集和使用场景,从而让用户能够在详情页就清楚的指导该 App 收集了哪些数据,并且将会把这些数据用在什么地方。

除此之外,苹果还要求 SDK 的开发者提供SDK 签名。具体来看,有了 SDK 签名,当应用这作者在自己的应用中采用一个第三方应用新版本的时候,Xcode 会对其是否由同一个开发者签名进行验证,提升软件供应链的完整性。说的简单直白一点,就是苹果希望通过签名认证的方式,来确保 SDK 不会在开发的过程中被篡改。

经过签名认证后的 SDK ,在 Xcode15 会显示对应的 Signature 信息,如果一旦发现本次前面和上次不一致,那么 Xcode 就会让编译失败并弹出警告。虽然目前来看,苹果并没有要求所有的 SDK 强制使用签名,但如果这一 SDK 涉及到隐私手机,尤其是出现在下面列表中的这些 SDK,则一定要添加相关签名。

需要隐私清单和签名的 SDK:苹果还专门列出了一个在 App Store 常用的 SDK 清单,并且表示," 自 2024 年春季开始,当您在 App Store Connect 中提交包含这些 SDK 的新应用程序时,或者当您提交的更新包含这些 SDK 的时候,必须包含下面列出的任何 SDK 的隐私清单。在将列出的 SDK 用作二进制依赖项的情况下,也需要签名。所列 SDK 的任何版本,以及对列表中的 S DK 进行重新打包的任何 SDK,都包含在规定中。"

具体 SDK 列表截图如下:

02 给 API 一个必要理由

除了隐私清单之外,本次新政策最为关键的则是所谓的《必要理由 API 申明》。

简单来说,就是苹果只做了一个新的 API 分类,开发者则需要使用这个分类在隐私清单里面说明为什么需要调用该 API 接口。从目前的情况来看,苹果可能是期望通过此举来规范 App 使用这些 API 做各种 Fingerprinting 识别行为。

相关的 API 总计有 5 个:

File timestamp APIs

System boot time APIs

Disk space APIs

Active keyboard APIs

User defaults APIs

也就是说,如果 SDK 和 App 里用到了分类里的这些 API ,那么开发者就需要在隐私列表里填写为什么要使用这些 API 的原因。

总结一下,本次 iOS 隐私清单主要覆盖的有:

SDK 提供隐私清单的数据收集类型、使用描述和用途

必要理由的 API 需要提供使用 " 代码 " 和原因

ATT 跟踪添加域名区分

第三方 SDK 签名

而这一切,都会在 2024 年春季落地。