From 557952e2c765298df464aff2be3b76ac488061cc Mon Sep 17 00:00:00 2001 From: Alex Guretzki Date: Wed, 6 Mar 2024 13:58:35 +0100 Subject: [PATCH 1/7] Adding initial PrivacyInfo --- Adyen.xcodeproj/project.pbxproj | 2 + PrivacyInfo.xcprivacy | 107 ++++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 PrivacyInfo.xcprivacy diff --git a/Adyen.xcodeproj/project.pbxproj b/Adyen.xcodeproj/project.pbxproj index ac6e16f664..86593d3d0d 100644 --- a/Adyen.xcodeproj/project.pbxproj +++ b/Adyen.xcodeproj/project.pbxproj @@ -1429,6 +1429,7 @@ 81825CC32AC59C6C00F91912 /* XCTestCase+Wait.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTestCase+Wait.swift"; sourceTree = ""; }; 81881BCD2B1A0A510020E3F2 /* AnyPaymentMethod.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnyPaymentMethod.swift; sourceTree = ""; }; 81896E842A4DB5F300C532CA /* SearchViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewControllerTests.swift; sourceTree = ""; }; + 818E7BBE2B989ACE00A432EE /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 8191838D2A53062F008EB61A /* FormAddressItem+Configuration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FormAddressItem+Configuration.swift"; sourceTree = ""; }; 819CC3332B14C53200D2EEE9 /* PaymentMethods+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PaymentMethods+Equatable.swift"; sourceTree = ""; }; 81A2E3BD2A5C453200CF5F9C /* LinkTextViewTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LinkTextViewTests.swift; sourceTree = ""; }; @@ -3450,6 +3451,7 @@ F9A1B477283B689F005F3145 /* Adyen.docc */, F94B870925EFB71100D270A6 /* MIGRATION.md */, E27B8EAD22B79CD20075BB6A /* README.md */, + 818E7BBE2B989ACE00A432EE /* PrivacyInfo.xcprivacy */, E2C0E03522097917008616F6 /* Adyen */, F95899C725FA524100E4113F /* AdyenSwiftUI */, F92326AD25A3669E002C5BC4 /* AdyenEncryption */, diff --git a/PrivacyInfo.xcprivacy b/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..7108f2f4e7 --- /dev/null +++ b/PrivacyInfo.xcprivacy @@ -0,0 +1,107 @@ + + + + + NSPrivacyTracking + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeProductInteraction + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAnalytics + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeUserID + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeOtherUserContactInfo + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePaymentInfo + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeName + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeEmailAddress + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePhoneNumber + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePhysicalAddress + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + + From 859240195ebaf354c92cb18b56c4d0914ee879a2 Mon Sep 17 00:00:00 2001 From: Alex Guretzki Date: Wed, 6 Mar 2024 16:19:48 +0100 Subject: [PATCH 2/7] Adding PrivacyInfo to every required target --- Adyen.xcodeproj/project.pbxproj | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Adyen.xcodeproj/project.pbxproj b/Adyen.xcodeproj/project.pbxproj index 86593d3d0d..473678437e 100644 --- a/Adyen.xcodeproj/project.pbxproj +++ b/Adyen.xcodeproj/project.pbxproj @@ -212,6 +212,12 @@ 81C5D0CE2AC4170A002E918F /* IssuerListComponentExample.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81C5D0CC2AC4170A002E918F /* IssuerListComponentExample.swift */; }; 81C5D0D02AC428CB002E918F /* IssuerListComponentAdvancedFlowExample.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81C5D0CF2AC428CB002E918F /* IssuerListComponentAdvancedFlowExample.swift */; }; 81C5D0D12AC428CB002E918F /* IssuerListComponentAdvancedFlowExample.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81C5D0CF2AC428CB002E918F /* IssuerListComponentAdvancedFlowExample.swift */; }; + 81C78FC42B98B211005345D9 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 818E7BBE2B989ACE00A432EE /* PrivacyInfo.xcprivacy */; }; + 81C78FC52B98B216005345D9 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 818E7BBE2B989ACE00A432EE /* PrivacyInfo.xcprivacy */; }; + 81C78FC62B98B21A005345D9 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 818E7BBE2B989ACE00A432EE /* PrivacyInfo.xcprivacy */; }; + 81C78FC72B98B21E005345D9 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 818E7BBE2B989ACE00A432EE /* PrivacyInfo.xcprivacy */; }; + 81C78FC82B98B221005345D9 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 818E7BBE2B989ACE00A432EE /* PrivacyInfo.xcprivacy */; }; + 81C78FC92B98B224005345D9 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 818E7BBE2B989ACE00A432EE /* PrivacyInfo.xcprivacy */; }; 81D8E2E92A5C06AC00BC12FD /* KeyboardObserverTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81D8E2E82A5C06AC00BC12FD /* KeyboardObserverTests.swift */; }; 81DC5A512A73C52500DBF2D1 /* AdyenContextTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81DC5A502A73C52500DBF2D1 /* AdyenContextTests.swift */; }; 81DC5A552A77ED0400DBF2D1 /* Adyen3DS2 in Frameworks */ = {isa = PBXBuildFile; productRef = 81DC5A542A77ED0400DBF2D1 /* Adyen3DS2 */; }; @@ -5939,6 +5945,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 81C78FC42B98B211005345D9 /* PrivacyInfo.xcprivacy in Resources */, F94343E623FFD9A400AADF5F /* AdyenAssets.xcassets in Resources */, E90934A72297E7C800C9F04B /* Localizable.strings in Resources */, ); @@ -5958,6 +5965,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 81C78FC62B98B21A005345D9 /* PrivacyInfo.xcprivacy in Resources */, E76EC685241127CE009C6E2F /* AdyenCardAssets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -5981,6 +5989,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 81C78FC92B98B224005345D9 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -5988,6 +5997,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 81C78FC72B98B21E005345D9 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -5995,6 +6005,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 81C78FC52B98B216005345D9 /* PrivacyInfo.xcprivacy in Resources */, F917603E25949C2300D653BE /* AdyenActionsAssets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -6010,6 +6021,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 81C78FC82B98B221005345D9 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; From 31c94f053f7af33c4d51913b0fdd7da360c3930e Mon Sep 17 00:00:00 2001 From: Alex Guretzki Date: Wed, 6 Mar 2024 16:22:04 +0100 Subject: [PATCH 3/7] Adding PrivacyInfo to swift package --- Package.swift | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Package.swift b/Package.swift index 099eb6f001..40ea51b144 100644 --- a/Package.swift +++ b/Package.swift @@ -92,7 +92,8 @@ let package = Package( exclude: [ "Info.plist", "Utilities/Non SPM Bundle Extension" // This is to exclude `BundleExtension.swift` file, since swift packages has different code to access internal resources. - ] + ], + resources: [.process("PrivacyInfo.xcprivacy")] ), .target( name: "AdyenEncryption", @@ -122,7 +123,8 @@ let package = Package( exclude: [ "Info.plist", "Utilities/Non SPM Bundle Extension" // This is to exclude `BundleExtension.swift` file, since swift packages has different code to access internal resources. - ] + ], + resources: [.process("PrivacyInfo.xcprivacy")] ), .target( name: "AdyenCard", @@ -134,7 +136,8 @@ let package = Package( exclude: [ "Info.plist", "Utilities/Non SPM Bundle Extension" // This is to exclude `BundleExtension.swift` file, since swift packages has different code to access internal resources. - ] + ], + resources: [.process("PrivacyInfo.xcprivacy")] ), .target( name: "AdyenComponents", @@ -143,7 +146,8 @@ let package = Package( .target(name: "AdyenEncryption") ], path: "AdyenComponents", - exclude: ["Info.plist"] + exclude: ["Info.plist"], + resources: [.process("PrivacyInfo.xcprivacy")] ), .target( name: "AdyenSession", @@ -151,7 +155,8 @@ let package = Package( .target(name: "Adyen"), .target(name: "AdyenActions") ], - path: "AdyenSession" + path: "AdyenSession", + resources: [.process("PrivacyInfo.xcprivacy")] ), .target( name: "AdyenDropIn", @@ -161,7 +166,8 @@ let package = Package( .target(name: "AdyenActions") ], path: "AdyenDropIn", - exclude: ["Info.plist"] + exclude: ["Info.plist"], + resources: [.process("PrivacyInfo.xcprivacy")] ), .target( name: "AdyenWeChatPay", From 891154e84da4af7a65cc3615b71222061453a2ee Mon Sep 17 00:00:00 2001 From: Alex Guretzki Date: Tue, 12 Mar 2024 15:12:58 +0100 Subject: [PATCH 4/7] Fixing github tests --- Package.swift | 15 +++++---------- spell-check-word-allow-list.yaml | 1 + 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Package.swift b/Package.swift index 40ea51b144..9f143090df 100644 --- a/Package.swift +++ b/Package.swift @@ -123,8 +123,7 @@ let package = Package( exclude: [ "Info.plist", "Utilities/Non SPM Bundle Extension" // This is to exclude `BundleExtension.swift` file, since swift packages has different code to access internal resources. - ], - resources: [.process("PrivacyInfo.xcprivacy")] + ] ), .target( name: "AdyenCard", @@ -136,8 +135,7 @@ let package = Package( exclude: [ "Info.plist", "Utilities/Non SPM Bundle Extension" // This is to exclude `BundleExtension.swift` file, since swift packages has different code to access internal resources. - ], - resources: [.process("PrivacyInfo.xcprivacy")] + ] ), .target( name: "AdyenComponents", @@ -146,8 +144,7 @@ let package = Package( .target(name: "AdyenEncryption") ], path: "AdyenComponents", - exclude: ["Info.plist"], - resources: [.process("PrivacyInfo.xcprivacy")] + exclude: ["Info.plist"] ), .target( name: "AdyenSession", @@ -155,8 +152,7 @@ let package = Package( .target(name: "Adyen"), .target(name: "AdyenActions") ], - path: "AdyenSession", - resources: [.process("PrivacyInfo.xcprivacy")] + path: "AdyenSession" ), .target( name: "AdyenDropIn", @@ -166,8 +162,7 @@ let package = Package( .target(name: "AdyenActions") ], path: "AdyenDropIn", - exclude: ["Info.plist"], - resources: [.process("PrivacyInfo.xcprivacy")] + exclude: ["Info.plist"] ), .target( name: "AdyenWeChatPay", diff --git a/spell-check-word-allow-list.yaml b/spell-check-word-allow-list.yaml index e673ba9288..48e6ad89e6 100644 --- a/spell-check-word-allow-list.yaml +++ b/spell-check-word-allow-list.yaml @@ -192,3 +192,4 @@ whiteList: - bizum - alipay - checkoutanalytics + - xcprivacy From 5613b6da759b6bcb88e385dc76bc17df92d14ac5 Mon Sep 17 00:00:00 2001 From: Alex Guretzki Date: Tue, 12 Mar 2024 15:17:09 +0100 Subject: [PATCH 5/7] Update spell-check-word-allow-list.yaml --- spell-check-word-allow-list.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/spell-check-word-allow-list.yaml b/spell-check-word-allow-list.yaml index 48e6ad89e6..a63e11faa3 100644 --- a/spell-check-word-allow-list.yaml +++ b/spell-check-word-allow-list.yaml @@ -193,3 +193,4 @@ whiteList: - alipay - checkoutanalytics - xcprivacy + From fab65ccb79c2793ca45b8f8d5ff90eeb7776206d Mon Sep 17 00:00:00 2001 From: Alex Guretzki Date: Mon, 18 Mar 2024 10:15:37 +0100 Subject: [PATCH 6/7] Adding PrivacyInfo to podspec --- Adyen.podspec | 1 + 1 file changed, 1 insertion(+) diff --git a/Adyen.podspec b/Adyen.podspec index 0d88786546..3af059db23 100644 --- a/Adyen.podspec +++ b/Adyen.podspec @@ -16,6 +16,7 @@ Pod::Spec.new do |s| s.frameworks = 'Foundation' s.default_subspecs = 'Core', 'Components', 'Actions', 'Card', 'Encryption', 'DropIn', 'Session' s.pod_target_xcconfig = {'SWIFT_SUPPRESS_WARNINGS' => 'YES' } + s.resource_bundles = { 'Adyen' => ['PrivacyInfo.xcprivacy'] } s.subspec 'DropIn' do |plugin| plugin.source_files = 'AdyenDropIn/**/*.swift' From c96440a9a528e5a2adbc5129a49b45097bcbd454 Mon Sep 17 00:00:00 2001 From: Alex Guretzki Date: Mon, 18 Mar 2024 10:25:19 +0100 Subject: [PATCH 7/7] Moving PrivacyInfo to AdyenCore --- Adyen.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Adyen.podspec b/Adyen.podspec index 3af059db23..c1597113e2 100644 --- a/Adyen.podspec +++ b/Adyen.podspec @@ -16,7 +16,6 @@ Pod::Spec.new do |s| s.frameworks = 'Foundation' s.default_subspecs = 'Core', 'Components', 'Actions', 'Card', 'Encryption', 'DropIn', 'Session' s.pod_target_xcconfig = {'SWIFT_SUPPRESS_WARNINGS' => 'YES' } - s.resource_bundles = { 'Adyen' => ['PrivacyInfo.xcprivacy'] } s.subspec 'DropIn' do |plugin| plugin.source_files = 'AdyenDropIn/**/*.swift' @@ -100,7 +99,8 @@ Pod::Spec.new do |s| plugin.resource_bundles = { 'Adyen' => [ 'Adyen/Assets/**/*.strings', - 'Adyen/Assets/**/*.xcassets' + 'Adyen/Assets/**/*.xcassets', + 'PrivacyInfo.xcprivacy' ] } end