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

Reply via email to