1. Privacy manifest files
1.1 简介
自己App或三方SDK(通过XCFrameworks|Swift packages|Xcode projects集成的)需要包含一个隐私清单文件(privacy manifest)叫作 PrivacyInfo.xcprivacy
。它是一个属性列表,记录了App或三方SDK收集数据的类型以及使用收集数据Api的原因,放置在bundle文件里。帮助开发者了解三方SDK中使用的Api以及数据收集的一些信息。
1.2 Create a privacy manifest
File > New File->App Privacy,然后选择target,这里的target可以是三方SDK,也可以是自身App的,如果更新三方SDK成本太大,或者最新版本的也没有提供隐私清单,可以通过这个方法,手动给三方SDK添加。每个三方SDK都是单独的,都需要单独添加
默认名字 PrivacyInfo.xcprivacy,不建议更改
在PrivacyInfo.xcprivacy字典里,添加下列的键:
NSPrivacyTracking
bool值,表示App或者三方SDK是否使用了
App Tracking Transparency framework下的数据 User Privacy and Data Use.
NSPrivacyTrackingDomains
string数组,表示App或者三方SDK在tracking时,链接的域名,如果用户没有统一跟踪的权限,请求这些域名就会失败,并收到一个error
,如果NSPrivacyTracking=true,则至少需要设置一个NSPrivacyTrackingDomains
NSPrivacyCollectedDataTypes
一个字典数组,表示App或者三方SDK收集的数据类型
Describing data use in privacy manifests.
NSPrivacyAccessedAPITypes
一个字典数据,表示App或者三方SDK,访问了哪些需要说明访问原因的api
Describing use of required reason API.- 只需要在iOS, iPadOS, tvOS, visionOS, watchOS上为App或者三方SDK上提供这个
1.3 Describing data use in privacy manifests
链接:Describing data use in privacy manifests | Apple Developer Documentation
需要注意的点:
- data type不能自定义key-value, 只能使用列表中列出来的
1.4 Describing use of required reason API
大体上包括以下几类:
- File timestamp APIs
- System boot time APIs
- Disk space APIs
- User defaults APIs
- Active keyboard APIs
1.5 需要包含隐私清单和签名的三方SDK
1.6 总结
- 三方SDK在上面的列表中,分为两种情况:
- 以二进制集成(framework),需要包含签名和隐私清单,从目前来看,三方SDK都更新了
- 以源码集成,只需要包含隐私清单,如果三方SDK最新版SDK里面包含了,拿过来用即可,更不更新SDK都行,如果三方SDK最新版也没有包含,可以不用管
- 三方SDK不在上面的列表中:
- 签名和隐私文件有没有都行,最好有
- 自己的App里面,只需要包含本身App里用到的隐私Api说明
1.7 查看隐私报告
打包的时候,可以提前看,App的privacy 报告,会生成一个PDF