From 194446af3474c00eba12bd3def8514c24bd49b1e Mon Sep 17 00:00:00 2001 From: Tim Oliver Date: Fri, 26 Apr 2024 00:43:54 -0700 Subject: [PATCH] Remove privacy manifest file and related build tooling Summary: After consulting with the privacy team, we've agreed that it is best to remove the privacy manifest file until we can actually confirm if it is actually required. In particular, Apple seems to currently only send warnings to apps that it detects are using required reason APIs without declaring these in their own privacy manifest. As IGListKit does not implement any of these APIs, the manifest shouldn't be required. Following this change, if anyone does receive a rejection noticed from Apple and it is like to IGListKit, please open a new issue in this GitHub repo so we can re-review this decision at that point. Differential Revision: D56618598 fbshipit-source-id: df895708c318156525a62a007ebeae7934a870ed --- IGListDiffKit.podspec | 1 - IGListKit.podspec | 1 - IGListKit.xcodeproj/project.pbxproj | 22 ++---------------- IGListSwiftKit.podspec | 1 - Package.swift | 7 ++---- Source/PrivacyInfo.xcprivacy | 22 ------------------ scripts/generate_spm_sources_layout.sh | 23 ------------------- .../IGListDiffKit/PrivacyInfo.xcprivacy | 1 - spm/Sources/IGListKit/PrivacyInfo.xcprivacy | 1 - .../IGListSwiftKit/PrivacyInfo.xcprivacy | 1 - 10 files changed, 4 insertions(+), 76 deletions(-) delete mode 100644 Source/PrivacyInfo.xcprivacy delete mode 120000 spm/Sources/IGListDiffKit/PrivacyInfo.xcprivacy delete mode 120000 spm/Sources/IGListKit/PrivacyInfo.xcprivacy delete mode 120000 spm/Sources/IGListSwiftKit/PrivacyInfo.xcprivacy diff --git a/IGListDiffKit.podspec b/IGListDiffKit.podspec index 64fa2f7c5..cba54dbac 100644 --- a/IGListDiffKit.podspec +++ b/IGListDiffKit.podspec @@ -23,7 +23,6 @@ Pod::Spec.new do |s| s.source_files = 'Source/IGListDiffKit/**/*.{h,m,mm}' s.private_header_files = 'Source/IGListDiffKit/Internal/*.h' - s.resource_bundles = { "#{s.name}_Privacy" => ['Source/PrivacyInfo.xcprivacy'] } s.requires_arc = true s.ios.deployment_target = '11.0' diff --git a/IGListKit.podspec b/IGListKit.podspec index 12314fe79..170e0f646 100644 --- a/IGListKit.podspec +++ b/IGListKit.podspec @@ -35,7 +35,6 @@ Pod::Spec.new do |s| s.osx.source_files = 'Source/IGListKit/IGListKit.h' - s.resource_bundles = { "#{s.name}_Privacy" => ['Source/PrivacyInfo.xcprivacy'] } s.requires_arc = true s.ios.deployment_target = '11.0' diff --git a/IGListKit.xcodeproj/project.pbxproj b/IGListKit.xcodeproj/project.pbxproj index 851ebb2cb..b38a23611 100644 --- a/IGListKit.xcodeproj/project.pbxproj +++ b/IGListKit.xcodeproj/project.pbxproj @@ -375,7 +375,7 @@ 88144F1B1D870EDC007C7F66 /* IGTestSingleItemDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 88144F021D870EDC007C7F66 /* IGTestSingleItemDataSource.m */; }; 88144F1D1D870EDC007C7F66 /* IGTestSupplementarySource.m in Sources */ = {isa = PBXBuildFile; fileRef = 88144F061D870EDC007C7F66 /* IGTestSupplementarySource.m */; }; 882BC1321E0118CB0083B311 /* IGTestObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 88144F001D870EDC007C7F66 /* IGTestObject.m */; }; - 883797082022304E00B94676 /* BuildFile in Headers */ = {isa = PBXBuildFile; }; + 883797082022304E00B94676 /* (null) in Headers */ = {isa = PBXBuildFile; }; 88379728202236AB00B94676 /* IGListAdapterUpdateTester.m in Sources */ = {isa = PBXBuildFile; fileRef = 294CDE621F995DD7002CF6E4 /* IGListAdapterUpdateTester.m */; }; 88379729202236AC00B94676 /* IGListAdapterUpdateTester.m in Sources */ = {isa = PBXBuildFile; fileRef = 294CDE621F995DD7002CF6E4 /* IGListAdapterUpdateTester.m */; }; 885FE1DD1DC51A0D009CE2B4 /* IGListKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 885FE1D41DC51A0D009CE2B4 /* IGListKit.framework */; }; @@ -424,14 +424,6 @@ F10C8F582B982EE7009F4690 /* IGListDefaultExperiments.h in Headers */ = {isa = PBXBuildFile; fileRef = F10C8F562B982DFD009F4690 /* IGListDefaultExperiments.h */; }; F10C8F5B2B9830F0009F4690 /* IGListTestCollectionViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = F10C8F592B9830E6009F4690 /* IGListTestCollectionViewLayout.m */; }; F10C8F5C2B9830F1009F4690 /* IGListTestCollectionViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = F10C8F592B9830E6009F4690 /* IGListTestCollectionViewLayout.m */; }; - F15F1DE02BA40D05002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */ = {isa = PBXBuildFile; fileRef = F15F1DDA2BA408C1002AF3FE /* PrivacyInfo.xcprivacy */; }; - F15F1DE22BA40D22002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */ = {isa = PBXBuildFile; fileRef = F15F1DDA2BA408C1002AF3FE /* PrivacyInfo.xcprivacy */; }; - F15F1DE42BA40D2A002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */ = {isa = PBXBuildFile; fileRef = F15F1DDA2BA408C1002AF3FE /* PrivacyInfo.xcprivacy */; }; - F15F1DE62BA40D41002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */ = {isa = PBXBuildFile; fileRef = F15F1DDA2BA408C1002AF3FE /* PrivacyInfo.xcprivacy */; }; - F15F1DE82BA40D64002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */ = {isa = PBXBuildFile; fileRef = F15F1DDA2BA408C1002AF3FE /* PrivacyInfo.xcprivacy */; }; - F15F1DEA2BA40D74002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */ = {isa = PBXBuildFile; fileRef = F15F1DDA2BA408C1002AF3FE /* PrivacyInfo.xcprivacy */; }; - F15F1DEC2BA40D90002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */ = {isa = PBXBuildFile; fileRef = F15F1DDA2BA408C1002AF3FE /* PrivacyInfo.xcprivacy */; }; - F15F1DEE2BA40D9C002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */ = {isa = PBXBuildFile; fileRef = F15F1DDA2BA408C1002AF3FE /* PrivacyInfo.xcprivacy */; }; F1855A4C29BC565600558D18 /* IGListDiffDescriptionStringTests.m in Sources */ = {isa = PBXBuildFile; fileRef = F1855A4B29BC565600558D18 /* IGListDiffDescriptionStringTests.m */; }; F1855A4D29BC565600558D18 /* IGListDiffDescriptionStringTests.m in Sources */ = {isa = PBXBuildFile; fileRef = F1855A4B29BC565600558D18 /* IGListDiffDescriptionStringTests.m */; }; F1855A4E29BC565600558D18 /* IGListDiffDescriptionStringTests.m in Sources */ = {isa = PBXBuildFile; fileRef = F1855A4B29BC565600558D18 /* IGListDiffDescriptionStringTests.m */; }; @@ -526,7 +518,6 @@ dstPath = ""; dstSubfolderSpec = 7; files = ( - F15F1DE02BA40D05002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */, ); name = "Copy Privacy Manifest"; runOnlyForDeploymentPostprocessing = 0; @@ -537,7 +528,6 @@ dstPath = ""; dstSubfolderSpec = 7; files = ( - F15F1DE22BA40D22002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */, ); name = "Copy Privacy Manifest"; runOnlyForDeploymentPostprocessing = 0; @@ -548,7 +538,6 @@ dstPath = ""; dstSubfolderSpec = 7; files = ( - F15F1DE42BA40D2A002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */, ); name = "Copy Privacy Manifest"; runOnlyForDeploymentPostprocessing = 0; @@ -559,7 +548,6 @@ dstPath = ""; dstSubfolderSpec = 7; files = ( - F15F1DE62BA40D41002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */, ); name = "Copy Privacy Manifest"; runOnlyForDeploymentPostprocessing = 0; @@ -570,7 +558,6 @@ dstPath = ""; dstSubfolderSpec = 7; files = ( - F15F1DE82BA40D64002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */, ); name = "Copy Privacy Manifest"; runOnlyForDeploymentPostprocessing = 0; @@ -581,7 +568,6 @@ dstPath = ""; dstSubfolderSpec = 7; files = ( - F15F1DEA2BA40D74002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */, ); name = "Copy Privacy Manifest"; runOnlyForDeploymentPostprocessing = 0; @@ -592,7 +578,6 @@ dstPath = ""; dstSubfolderSpec = 7; files = ( - F15F1DEC2BA40D90002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */, ); name = "Copy Privacy Manifest"; runOnlyForDeploymentPostprocessing = 0; @@ -603,7 +588,6 @@ dstPath = ""; dstSubfolderSpec = 7; files = ( - F15F1DEE2BA40D9C002AF3FE /* PrivacyInfo.xcprivacy in Copy Privacy Manifest */, ); name = "Copy Privacy Manifest"; runOnlyForDeploymentPostprocessing = 0; @@ -857,7 +841,6 @@ F10C8F562B982DFD009F4690 /* IGListDefaultExperiments.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IGListDefaultExperiments.h; sourceTree = ""; }; F10C8F592B9830E6009F4690 /* IGListTestCollectionViewLayout.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IGListTestCollectionViewLayout.m; sourceTree = ""; }; F10C8F5A2B9830E6009F4690 /* IGListTestCollectionViewLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IGListTestCollectionViewLayout.h; sourceTree = ""; }; - F15F1DDA2BA408C1002AF3FE /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; F15F1DDB2BA40B84002AF3FE /* Package.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Package.swift; sourceTree = SOURCE_ROOT; }; F15F1DDC2BA40BC9002AF3FE /* IGListKit.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = IGListKit.podspec; sourceTree = ""; }; F15F1DDD2BA40BC9002AF3FE /* IGListDiffKit.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = IGListDiffKit.podspec; sourceTree = ""; }; @@ -971,7 +954,6 @@ 7A02CEC6236150C400B49FAE /* IGListKit */, 7A92EA9823A8A42000E5A13D /* IGListSwiftKit */, 7A02D0AC236153CE00B49FAE /* Info.plist */, - F15F1DDA2BA408C1002AF3FE /* PrivacyInfo.xcprivacy */, ); path = Source; sourceTree = ""; @@ -1560,7 +1542,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 883797082022304E00B94676 /* BuildFile in Headers */, + 883797082022304E00B94676 /* (null) in Headers */, 7A02D0C023615CE500B49FAE /* IGListKit.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/IGListSwiftKit.podspec b/IGListSwiftKit.podspec index 1e0e5677a..f50e0fea7 100644 --- a/IGListSwiftKit.podspec +++ b/IGListSwiftKit.podspec @@ -28,7 +28,6 @@ Pod::Spec.new do |s| ] end - s.resource_bundles = { "#{s.name}_Privacy" => ['Source/PrivacyInfo.xcprivacy'] } s.requires_arc = true s.swift_versions = ['4.0', '5.0', '5.1'] diff --git a/Package.swift b/Package.swift index cf4966ecb..edd8f7867 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.3 +// swift-tools-version:5.0 import PackageDescription let package = Package( @@ -19,21 +19,18 @@ let package = Package( .target( name: "IGListDiffKit", path: "spm/Sources/IGListDiffKit", - resources: [.copy("PrivacyInfo.xcprivacy")], publicHeadersPath: "include" ), .target( name: "IGListKit", dependencies: ["IGListDiffKit"], path: "spm/Sources/IGListKit", - resources: [.copy("PrivacyInfo.xcprivacy")], publicHeadersPath: "include" ), .target( name: "IGListSwiftKit", dependencies: ["IGListKit"], - path: "spm/Sources/IGListSwiftKit", - resources: [.copy("PrivacyInfo.xcprivacy")] + path: "spm/Sources/IGListSwiftKit" ), ], cLanguageStandard: .c11, diff --git a/Source/PrivacyInfo.xcprivacy b/Source/PrivacyInfo.xcprivacy deleted file mode 100644 index 395192a5b..000000000 --- a/Source/PrivacyInfo.xcprivacy +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - NSPrivacyAccessedAPITypes - - - - NSPrivacyCollectedDataTypes - - NSPrivacyTracking - - NSPrivacyTrackingDomains - - - diff --git a/scripts/generate_spm_sources_layout.sh b/scripts/generate_spm_sources_layout.sh index 5c8add8fa..aedb467d2 100755 --- a/scripts/generate_spm_sources_layout.sh +++ b/scripts/generate_spm_sources_layout.sh @@ -236,27 +236,6 @@ function generate_ig_list_swift_kit() { generate_ig_list_swift_kit_spm_sources } -function generate_ig_privacy_manifest_spm() { - echo "Generate symbolic links for privacy manifest" - - directories=(${SPM_IG_LIST_KIT_SOURCES_PATH} - ${SPM_IG_LIST_DIFF_KIT_SOURCES_PATH} - ${SPM_IG_LIST_SWIFT_KIT_SOURCES_PATH}) - manifest_file="Source/PrivacyInfo.xcprivacy" - SRC_ROOT=$(pwd) - - for directory in ${directories[@]}; do - echo "Generated under ${directory}" - cd ${directory} - file_to_link=$(echo $manifest_file | sed "s|:| |g") - ln -s ../../../$file_to_link - cd $SRC_ROOT - done - - echo " Done" - echo "" -} - # Delete all symbolik links from `spm` folder function cleanup() { rm -rf $SPM_IG_LIST_DIFF_KIT_PUBLIC_HEADERS_PATH/*.* @@ -277,5 +256,3 @@ generate_ig_list_diff_kit generate_ig_list_kit #4 generate_ig_list_swift_kit -#5 -generate_ig_privacy_manifest_spm diff --git a/spm/Sources/IGListDiffKit/PrivacyInfo.xcprivacy b/spm/Sources/IGListDiffKit/PrivacyInfo.xcprivacy deleted file mode 120000 index 48976e4ae..000000000 --- a/spm/Sources/IGListDiffKit/PrivacyInfo.xcprivacy +++ /dev/null @@ -1 +0,0 @@ -../../../Source/PrivacyInfo.xcprivacy \ No newline at end of file diff --git a/spm/Sources/IGListKit/PrivacyInfo.xcprivacy b/spm/Sources/IGListKit/PrivacyInfo.xcprivacy deleted file mode 120000 index 48976e4ae..000000000 --- a/spm/Sources/IGListKit/PrivacyInfo.xcprivacy +++ /dev/null @@ -1 +0,0 @@ -../../../Source/PrivacyInfo.xcprivacy \ No newline at end of file diff --git a/spm/Sources/IGListSwiftKit/PrivacyInfo.xcprivacy b/spm/Sources/IGListSwiftKit/PrivacyInfo.xcprivacy deleted file mode 120000 index 48976e4ae..000000000 --- a/spm/Sources/IGListSwiftKit/PrivacyInfo.xcprivacy +++ /dev/null @@ -1 +0,0 @@ -../../../Source/PrivacyInfo.xcprivacy \ No newline at end of file