====前言====
- 我这是自己手动配置的
还没上线审核,只是上传ipa后没再收到反馈邮件了,还不能完全确定是否正常- 手头上有三个项目,目前只提交了一个并成功过申,这个成功的也没再收到过隐私协议相关的邮件
- 有位大佬配置了个全自动脚本【有时间的话我再试一试】
- 关于第三方sdk 签名问题:
- 个人认为项目共用一个配置文件就行,三方sdk即使有自己的配置文件,打包后还是会汇总成一个表
- Archieve 中生成的隐私协议pdf,只会显示 Privacy Nutrition Label Types 相关内容,如果配置的话就是空的
- 暂时先这样,待我版本更新成功并且没问题的话再来更新
一. 新建配置文件
- cmd+n,搜索App Privacy
- 注意勾选Target
- 右键点击PrivacyInfo.xcprivacy文件 -- open As -- source Code, 把下面的内容复制进去(覆盖)【以下内容作为一个模版使用就行,要不就自己添加】
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyTracking</key>
<false/>
<key>NSPrivacyTrackingDomains</key>
<array>
<string>xw-web.yixc.com</string>
<string>r3cxzq.oplinking.com</string>
</array>
<key>NSPrivacyCollectedDataTypes</key>
<array>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeDeviceID</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>Third-party advertising</string>
<string>Other purposes</string>
</array>
</dict>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeUserID</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>Third-party advertising</string>
<string>Other purposes</string>
</array>
</dict>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>Crash data</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>Third-party advertising</string>
<string>Other purposes</string>
</array>
</dict>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>Other diagnostic data</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>Third-party advertising</string>
<string>Other purposes</string>
</array>
</dict>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>Other data types</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>Third-party advertising</string>
<string>Other purposes</string>
</array>
</dict>
</array>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>0A2A.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>35F9.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryDiskSpace</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>E174.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryActiveKeyboards</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>54BD.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
</array>
</dict>
</plist>
-
右键点击PrivacyInfo.xcprivacy文件 -- open As -- property list 切换成表格
-
当前配置文件内容如下
二. Key、Value 说明以及配置查询
- Privacy Tracking Enabled 【bool】
- 如果APP或三方SDK使用了 应用程序跟踪透明度框架下定义的数据进行跟踪 ,需要设置成YES
- 设置为YES的话,必须配置 Privacy Tracking Domains,就下面的的第二步,设置为NO的话忽略
- Privacy Tracking Domains 【array】
- 添加跟踪的互联网域名,如果用户禁止 ATTrackingManager 的权限申请,这些域名会请求失败
- 模版中的两条数据是我随便填的
- 查看域名方法:Xcode->open developer tool->Instruments->network->points of interest 我的项目没有这方面业务,所以未测试可行性
- Privacy Nutrition Label Types 【array】
- 只需修改 Collection Purposes 下的内容即可
- 或者直接删除 Privacy Nutrition Label Types 下的 item,例如没有用到 Device ID,把item删掉就行
- Collection Purposes 填写内容对照链接
- Privacy Accessed API Types 【array】
- 这位大佬写了个查询脚本,查询是否使用,亲测好用
- 同样只需修改 Privacy Accessed API Reasons 内容
- 用不到的话直接删item
- Privacy Accessed API Reasons 填写内容对照链接
- 只需填写 DDA9.1 会自动补全内容的