From 1d59cca428435ea36387c9304c8d1019ee195c75 Mon Sep 17 00:00:00 2001 From: Erisu Date: Tue, 9 Apr 2024 20:54:27 +0900 Subject: [PATCH] doc(ios): add privacy manifest guide --- README.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/README.md b/README.md index 89bf544a..19145473 100644 --- a/README.md +++ b/README.md @@ -305,3 +305,47 @@ var boolean = device.isiOSAppOnMac; ### Supported Platforms - iOS + +--- + +## iOS Privacy Manifest + +As of May 1, 2024, Apple requires a privacy manifest file to be created for apps and third-party SDKs. The purpose of the privacy manifest file is to explain the data being collected and the reasons for the required APIs it uses. Starting with `cordova-ios@7.1.0`, APIs are available for configuring the privacy manifest file from `config.xml`. + +This plugin comes pre-bundled with a `PrivacyInfo.xcprivacy` file that contains the list of APIs it uses and the reasons for using them. + +However, as an app developer, it will be your responsibility to identify additional information explaining what your app does with that data. + +In this case, you will need to review the "[Describing data use in privacy manifests](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests)" to understand the list of known `NSPrivacyCollectedDataTypes` and `NSPrivacyCollectedDataTypePurposes`. + +For example, with this plugin, you may collect the device ID for app functionality or analytics. In the case of app functionality, you would write the following in `config.xml`: + +```xml + + + NSPrivacyTracking + + NSPrivacyTrackingDomains + + NSPrivacyAccessedAPITypes + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeDeviceID + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + + +``` + +Also, ensure all four keys—`NSPrivacyTracking`, `NSPrivacyTrackingDomains`, `NSPrivacyAccessedAPITypes`, and `NSPrivacyCollectedDataTypes`—are defined, even if you are not updating the other items. Apple requires all to be defined.