This is an automated email from the ASF dual-hosted git repository. erisu pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cordova-plugin-device.git
The following commit(s) were added to refs/heads/master by this push: new 3e199bf feat(ios): add bundled resources for privacy manifest (#193) 3e199bf is described below commit 3e199bfe3eda15b06e9654c787845d814bae595a Author: エリス <er...@users.noreply.github.com> AuthorDate: Wed Apr 17 12:39:48 2024 +0900 feat(ios): add bundled resources for privacy manifest (#193) --- README.md | 45 ++++++++++++++++++++++++++ plugin.xml | 2 ++ src/ios/CDVDevice.bundle/PrivacyInfo.xcprivacy | 41 +++++++++++++++++++++++ 3 files changed, 88 insertions(+) diff --git a/README.md b/README.md index 89bf544..48a1848 100644 --- a/README.md +++ b/README.md @@ -305,3 +305,48 @@ 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, if you collected the device ID for app functionality and analytics, you would write the following in `config.xml`: + +```xml +<platform name="ios"> + <privacy-manifest> + <key>NSPrivacyTracking</key> + <false/> + <key>NSPrivacyTrackingDomains</key> + <array/> + <key>NSPrivacyAccessedAPITypes</key> + <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>NSPrivacyCollectedDataTypePurposeAnalytics</string> + <string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string> + </array> + </dict> + </array> + </privacy-manifest> +</platform> +``` + +Also, ensure all four keys—`NSPrivacyTracking`, `NSPrivacyTrackingDomains`, `NSPrivacyAccessedAPITypes`, and `NSPrivacyCollectedDataTypes`—are defined, even if you are not making an addition to the other items. Apple requires all to be defined. diff --git a/plugin.xml b/plugin.xml index 7afdd9f..14a193a 100644 --- a/plugin.xml +++ b/plugin.xml @@ -59,6 +59,8 @@ <header-file src="src/ios/CDVDevice.h" /> <source-file src="src/ios/CDVDevice.m" /> + + <resource-file src="src/ios/CDVDevice.bundle" target="CDVDevice.bundle" /> </platform> <!-- electron --> diff --git a/src/ios/CDVDevice.bundle/PrivacyInfo.xcprivacy b/src/ios/CDVDevice.bundle/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..7285278 --- /dev/null +++ b/src/ios/CDVDevice.bundle/PrivacyInfo.xcprivacy @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<!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/> + <key>NSPrivacyAccessedAPITypes</key> + <array> + <dict> + <key>NSPrivacyAccessedAPIType</key> + <string>NSPrivacyAccessedAPICategoryUserDefaults</string> + <key>NSPrivacyAccessedAPITypeReasons</key> + <array> + <string>CA92.1</string> + </array> + </dict> + </array> + <key>NSPrivacyCollectedDataTypes</key> + <array/> +</dict> +</plist> --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cordova.apache.org For additional commands, e-mail: commits-h...@cordova.apache.org