iOS 隐私协议配置 PrivacyInfo.xcprivacy

2,620 阅读2分钟

====前言====

  • 我这是自己手动配置的
  • 还没上线审核,只是上传ipa后没再收到反馈邮件了,还不能完全确定是否正常
  • 手头上有三个项目,目前只提交了一个并成功过申,这个成功的也没再收到过隐私协议相关的邮件
  • 有位大佬配置了个全自动脚本【有时间的话我再试一试】
  • 关于第三方sdk 签名问题:
    • 个人认为项目共用一个配置文件就行,三方sdk即使有自己的配置文件,打包后还是会汇总成一个表
  • Archieve 中生成的隐私协议pdf,只会显示 Privacy Nutrition Label Types 相关内容,如果配置的话就是空的
  • 暂时先这样,待我版本更新成功并且没问题的话再来更新

一. 新建配置文件

  1. cmd+n,搜索App Privacy 截屏2024-04-02 14.01.28.png
  2. 注意勾选Target 截屏2024-04-02 14.01.55.png
  3. 右键点击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>
  1. 右键点击PrivacyInfo.xcprivacy文件 -- open As -- property list 切换成表格

  2. 当前配置文件内容如下

截屏2024-04-02 14.11.25.png

二. Key、Value 说明以及配置查询

  1. Privacy Tracking Enabled 【bool】
  • 截屏2024-04-02 14.13.25.png
  • 如果APP或三方SDK使用了 应用程序跟踪透明度框架下定义的数据进行跟踪 ,需要设置成YES
  • 设置为YES的话,必须配置 Privacy Tracking Domains,就下面的的第二步,设置为NO的话忽略
  1. Privacy Tracking Domains 【array】
  • 截屏2024-04-02 14.13.34.png
  • 添加跟踪的互联网域名,如果用户禁止 ATTrackingManager 的权限申请,这些域名会请求失败
  • 模版中的两条数据是我随便填的
  • 查看域名方法:Xcode->open developer tool->Instruments->network->points of interest 我的项目没有这方面业务,所以未测试可行性
  1. Privacy Nutrition Label Types 【array】
  • 截屏2024-04-02 14.26.48.png
  • 只需修改 Collection Purposes 下的内容即可
  • 或者直接删除 Privacy Nutrition Label Types 下的 item,例如没有用到 Device ID,把item删掉就行
  • Collection Purposes 填写内容对照链接
  • 截屏2024-04-02 14.31.54.png
  1. Privacy Accessed API Types 【array】