From d4f041aeadd021cc4cc165e226af195c57c834dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20D=E2=80=99Aquino?= Date: Fri, 3 May 2024 18:15:52 -0700 Subject: [PATCH] Fill up missing Privacy report information for App submission MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit adds missing privacy report information for both damus and the notification extension. It details the reason we use - File timestamps - UserDefaults The reason codes were taken from Apple's documentation: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api Testing -------- PASS Damus: this commit Steps: 1. Build app for archival 2. Access the local archive and perform a secondary click 3. Click on "Generate Privacy Report" 4. Open the privacy report PDF. It should show no errors. PASS Closes: https://github.com/damus-io/damus/issues/2184 Signed-off-by: Daniel D’Aquino Reviewed-by: William Casarin --- .../PrivacyInfo.xcprivacy | 27 +++++++++++++++++++ PrivacyInfo.xcprivacy | 27 +++++++++++++++++++ damus.xcodeproj/project.pbxproj | 8 ++++++ 3 files changed, 62 insertions(+) create mode 100644 DamusNotificationService/PrivacyInfo.xcprivacy create mode 100644 PrivacyInfo.xcprivacy diff --git a/DamusNotificationService/PrivacyInfo.xcprivacy b/DamusNotificationService/PrivacyInfo.xcprivacy new file mode 100644 index 00000000..9860341d --- /dev/null +++ b/DamusNotificationService/PrivacyInfo.xcprivacy @@ -0,0 +1,27 @@ + + + + + NSPrivacyCollectedDataTypes + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + 1C8F.1 + + + + NSPrivacyAccessedAPIType + File Timestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + + diff --git a/PrivacyInfo.xcprivacy b/PrivacyInfo.xcprivacy new file mode 100644 index 00000000..9860341d --- /dev/null +++ b/PrivacyInfo.xcprivacy @@ -0,0 +1,27 @@ + + + + + NSPrivacyCollectedDataTypes + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + 1C8F.1 + + + + NSPrivacyAccessedAPIType + File Timestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + + diff --git a/damus.xcodeproj/project.pbxproj b/damus.xcodeproj/project.pbxproj index e027c3be..8c485ae3 100644 --- a/damus.xcodeproj/project.pbxproj +++ b/damus.xcodeproj/project.pbxproj @@ -639,6 +639,8 @@ D7EDED332B12ACAE0018B19C /* DamusUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDED322B12ACAE0018B19C /* DamusUserDefaults.swift */; }; D7EDED342B12ACAE0018B19C /* DamusUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7EDED322B12ACAE0018B19C /* DamusUserDefaults.swift */; }; D7FB10A72B0C371A00FA8D42 /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C2B10272A7B0F5C008AA43E /* Log.swift */; }; + D7FB14222BE5970000398331 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = D7FB14212BE5970000398331 /* PrivacyInfo.xcprivacy */; }; + D7FB14252BE5A9A800398331 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = D7FB14242BE5A9A800398331 /* PrivacyInfo.xcprivacy */; }; D7FD12262BD345A700CF195B /* FirstAidSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7FD12252BD345A700CF195B /* FirstAidSettingsView.swift */; }; D7FF94002AC7AC5300FD969D /* RelayURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7FF93FF2AC7AC5200FD969D /* RelayURL.swift */; }; E02429952B7E97740088B16C /* CameraController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E02429942B7E97740088B16C /* CameraController.swift */; }; @@ -1434,6 +1436,8 @@ D7EDED202B117DCA0018B19C /* SequenceUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SequenceUtils.swift; sourceTree = ""; }; D7EDED2D2B128E8A0018B19C /* CollectionExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollectionExtension.swift; sourceTree = ""; }; D7EDED322B12ACAE0018B19C /* DamusUserDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DamusUserDefaults.swift; sourceTree = ""; }; + D7FB14212BE5970000398331 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + D7FB14242BE5A9A800398331 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; D7FD12252BD345A700CF195B /* FirstAidSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirstAidSettingsView.swift; sourceTree = ""; }; D7FF93FF2AC7AC5200FD969D /* RelayURL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelayURL.swift; sourceTree = ""; }; E02429942B7E97740088B16C /* CameraController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CameraController.swift; sourceTree = ""; }; @@ -2451,6 +2455,7 @@ 4CE6DEDA27F7A08100C66700 = { isa = PBXGroup; children = ( + D7FB14212BE5970000398331 /* PrivacyInfo.xcprivacy */, 4C32B9362A9AD44700DC3548 /* flatbuffers */, 4C9054862A6AEB4500811EEC /* nostrdb */, 4C19AE4A2A5CEF7C00C90DB7 /* nostrscript */, @@ -2756,6 +2761,7 @@ D79C4C182AFEB061003A41B4 /* Info.plist */, D70A3B162B02DCE5008BD568 /* NotificationFormatter.swift */, D74AAFC42B1538DE006CF0F4 /* NotificationExtensionState.swift */, + D7FB14242BE5A9A800398331 /* PrivacyInfo.xcprivacy */, ); path = DamusNotificationService; sourceTree = ""; @@ -2984,6 +2990,7 @@ buildActionMask = 2147483647; files = ( 4C1D4FB42A7967990024F453 /* build-git-hash.txt in Resources */, + D7FB14222BE5970000398331 /* PrivacyInfo.xcprivacy in Resources */, 3ACB685F297633BC00C46468 /* Localizable.strings in Resources */, 4CE6DEEE27F7A08200C66700 /* Preview Assets.xcassets in Resources */, 3ACB685C297633BC00C46468 /* InfoPlist.strings in Resources */, @@ -3017,6 +3024,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + D7FB14252BE5A9A800398331 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; };