跳到主要内容
版本:v6

隐私清单文件

苹果在WWDC23上推出了新的第三方SDK隐私协议,要求SDK开发者在其SDK中声明使用API的合规理由,以提高透明度和用户隐私保护。

自2024年3月13日起,当开发者上传缺少API使用合规声明的新应用或更新时,App Store Connect将发出通知。

2024年5月1日起,所有提交至App Store Connect的新应用或更新都必须包含API使用合规声明。

合规操作指南

并非所有应用都会触发提示,但使用某些插件(如@capacitor/filesystem@capacitor/preferences)可能需要添加隐私清单文件。若您已收到相关通知:

  1. 升级Capacitor至: a. >= 6.0.0(Capacitor 6) b. >= 5.7.4(Capacitor 5) c. >= 4.8.2(Capacitor 4) d. Capacitor 3及以下版本不受支持
  2. 可选择使用VS Code扩展自动生成隐私清单文件,或手动创建

使用VS Code扩展

确保已安装Ionic VS Code扩展并打开项目。

在推荐操作中,若检测到应用使用了需要声明的API插件,将显示添加隐私清单选项。

无清单文件

选择"是"可创建基础隐私清单文件。

扩展随后会列出所有需要补充的隐私声明项,标记为缺失隐私清单类别。例如:

隐私变更

需为每个插件选择一个合规理由代码。若不确定如何选择,可点击文档查看苹果对各理由代码的官方说明。

请注意,VS Code扩展内置了常见插件的合规规则。若仍因隐私清单问题被苹果拒绝,可能是使用了扩展未识别的插件,可在扩展问题追踪器提交问题。

手动创建步骤

如需手动创建隐私清单文件,请在Xcode中:

选择文件 > 新建文件

滚动至资源区域,选择App隐私文件类型

点击下一步

目标列表勾选您的应用

点击创建

将生成PrivacyInfo.xcprivacy文件。由于Xcode界面编辑较复杂,建议右键选择用外部编辑器打开进行手动编辑。

以下是通过@capacitor/preferences插件使用UserDefaults API的示例文件:

<?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>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
</array>
<key>NSPrivacyTrackingDomains</key>
<array/>
</dict>
</plist>

可使用此脚本扫描可能需声明的插件,运行命令:sh required_reason_api_text_scanner.sh node_modules

选择正确的理由代码(如上例中的CA92.1)需参考苹果官方文档

应用商店提交前

提交至App Store前,可能还需声明用户追踪、追踪域名或其他应用特有的数据收集行为。详见苹果官方文档