Privacy Manifest
Apple 在 WWDC23 上推出了新的第三方 SDK 隐私协议,要求 SDK 作者在其 SDK 中声明 API 使用的批准理由,以增强透明度和用户隐私。
自 2024 年 3 月 13 日起,当上传没有批准理由访问某些 API 的新应用或更新应用时,App Store Connect 将通知用户。
自 2024 年 5 月 1 日起,向 App Store Connect 提交新应用或更新应用时,必须包含批准理由。
满足要求的步骤
并非所有应用都会被标记,但某些插件(如 @capacitor/filesystem
和 @capacitor/preferences
)可能需要隐私清单文件。如果您已收到通知:
- 更新 Capacitor 至:
a.
>= 6.0.0
(适用于 Capacitor 6) b.>= 5.7.4
(适用于 Capacitor 5) c.>= 4.8.2
(适用于 Capacitor 4) d. 不支持 Capacitor <= 3 - 使用 VS Code 扩展为您的应用创建隐私清单文件,或手动创建。
VS Code 扩展
确保已安装 Ionic VS Code 扩展并打开项目。
在推荐项下,如果您的应用使用了某些 API 的插件,您将看到添加隐私清单。
选择“是”以创建最基本的隐私清单文件。
扩展随后将列出所有需要的更改作为推荐项,标题为缺少隐私清单类别。例如:
您必须选择一个原因代码来解释您如何使用该插件。如果不确定,请点击文档查看 Apple 关于每个原因代码解释的文档。
请注意,VS Code 扩展有一套已知插件的规则来帮助您。如果 Apple 仍因缺少隐私清单理由而拒绝您的应用,可能是因为您使用的插件扩展无法识别。您可以在 VS Code 扩展问题跟踪器上提交问题。
手动步骤
如果您希望手动创建隐私清单文件,请打开 Xcode,然后:
选择文件 > 新建文件。
向下滚动到资源部分,选择应用隐私文件类型。
点击下一步。
在目标列表中勾选您的应用。
点击创建。
将创建一个名为 PrivacyInfo.xcprivacy
的文件。在 Xcode UI 中交互式创建此文件具有挑战性,因此可能更容易通过右键单击并选择用外部编辑器打开来手动编辑。
作为一个示例文件,这里是一个通过使用 @capacitor/preferences
插件使用 UserDefaults API 的 PrivacyInfo.xcprivacy
文件。
<?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
),您需要阅读 Apple 的文档。
提交到商店前
在提 交到 App Store 之前,您可能需要披露用户追踪、追踪域名或收集其他对您的应用唯一的数据类型。更多信息请参阅 Apple 的文档。