From 9234ca9f5d2a67b1e2d34c10e92dca7f8ae46694 Mon Sep 17 00:00:00 2001 From: scannillo <35243507+scannillo@users.noreply.github.com> Date: Thu, 29 Feb 2024 10:36:13 -0600 Subject: [PATCH 01/13] Add Privacy Manifest to AmericanExpress module (#1196) --- Braintree.podspec | 1 + Braintree.xcodeproj/project.pbxproj | 4 ++++ Package.swift | 3 ++- .../PrivacyInfo.xcprivacy | 21 +++++++++++++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 Sources/BraintreeAmericanExpress/PrivacyInfo.xcprivacy diff --git a/Braintree.podspec b/Braintree.podspec index 1c92484e8a..d63687c37e 100644 --- a/Braintree.podspec +++ b/Braintree.podspec @@ -24,6 +24,7 @@ Pod::Spec.new do |s| s.subspec "AmericanExpress" do |s| s.source_files = "Sources/BraintreeAmericanExpress/*.swift" s.dependency "Braintree/Core" + s.resource_bundle = { "BraintreeAmericanExpress_PrivacyInfo" => "Sources/BraintreeAmericanExpress/PrivacyInfo.xcprivacy" } end s.subspec "ApplePay" do |s| diff --git a/Braintree.xcodeproj/project.pbxproj b/Braintree.xcodeproj/project.pbxproj index b5e2755f6c..adc8d4f9f1 100644 --- a/Braintree.xcodeproj/project.pbxproj +++ b/Braintree.xcodeproj/project.pbxproj @@ -89,6 +89,7 @@ 80581A8C25531D0A00006F53 /* BTConfiguration+ThreeDSecure_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80581A8B25531D0A00006F53 /* BTConfiguration+ThreeDSecure_Tests.swift */; }; 80581B1D2553319C00006F53 /* BTGraphQLHTTP_SSLPinning_IntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80581B1C2553319C00006F53 /* BTGraphQLHTTP_SSLPinning_IntegrationTests.swift */; }; 8075CBEE2B1B735200CA6265 /* BTAPIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8075CBED2B1B735200CA6265 /* BTAPIRequest.swift */; }; + 80842DA72B8E49EF00A5CD92 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 80842DA62B8E49EF00A5CD92 /* PrivacyInfo.xcprivacy */; }; 80A6C6192B21205900416D50 /* UIApplication+URLOpener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A6C6182B21205900416D50 /* UIApplication+URLOpener.swift */; }; 80BA3C292B23892700900BBB /* FakeRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80BA3C282B23892700900BBB /* FakeRequest.swift */; }; 80BA64AC29D788E000E15264 /* BTLocalPaymentResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80BA64AB29D788E000E15264 /* BTLocalPaymentResult.swift */; }; @@ -715,6 +716,7 @@ 80581B1C2553319C00006F53 /* BTGraphQLHTTP_SSLPinning_IntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTGraphQLHTTP_SSLPinning_IntegrationTests.swift; sourceTree = ""; }; 805FD35B2331780F0000B514 /* BTPostalAddress_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTPostalAddress_Tests.swift; sourceTree = ""; }; 8075CBED2B1B735200CA6265 /* BTAPIRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTAPIRequest.swift; sourceTree = ""; }; + 80842DA62B8E49EF00A5CD92 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 80A1EE3D2236AAC600F6218B /* BTThreeDSecureAdditionalInformation_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTThreeDSecureAdditionalInformation_Tests.swift; sourceTree = ""; }; 80A6C6182B21205900416D50 /* UIApplication+URLOpener.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIApplication+URLOpener.swift"; sourceTree = ""; }; 80B6190C28C9535F00FB5022 /* PayPalCheckout.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = PayPalCheckout.xcframework; path = Frameworks/XCFrameworks/PayPalCheckout.xcframework; sourceTree = ""; }; @@ -1139,6 +1141,7 @@ 9C3F55EE275E80DA00C21C8A /* BTAmericanExpressError.swift */, 804B5711275AAF8500E51A52 /* BTAmericanExpressRewardsBalance.swift */, 804DC45A2B2CF3DC00F17A15 /* BTAmexRewardsBalanceRequest.swift */, + 80842DA62B8E49EF00A5CD92 /* PrivacyInfo.xcprivacy */, ); path = BraintreeAmericanExpress; sourceTree = ""; @@ -2455,6 +2458,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 80842DA72B8E49EF00A5CD92 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Package.swift b/Package.swift index 943be5df74..79afe54099 100644 --- a/Package.swift +++ b/Package.swift @@ -57,7 +57,8 @@ let package = Package( // Targets can depend on other targets in this package, and on products in packages this package depends on. .target( name: "BraintreeAmericanExpress", - dependencies: ["BraintreeCore"] + dependencies: ["BraintreeCore"], + resources: [.copy("PrivacyInfo.xcprivacy")] ), .target( name: "BraintreeApplePay", diff --git a/Sources/BraintreeAmericanExpress/PrivacyInfo.xcprivacy b/Sources/BraintreeAmericanExpress/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..85d25e638a --- /dev/null +++ b/Sources/BraintreeAmericanExpress/PrivacyInfo.xcprivacy @@ -0,0 +1,21 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePaymentInfo + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + + From 95db4635ffcd4ec140f56adeab39f905966cb479 Mon Sep 17 00:00:00 2001 From: agedd <105314544+agedd@users.noreply.github.com> Date: Fri, 1 Mar 2024 11:57:58 -0600 Subject: [PATCH 02/13] add PrivacyInfo file to BraintreeApplePay module (#1201) --- Braintree.podspec | 1 + Braintree.xcodeproj/project.pbxproj | 4 ++++ Package.swift | 3 ++- .../BraintreeApplePay/PrivacyInfo.xcprivacy | 21 +++++++++++++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 Sources/BraintreeApplePay/PrivacyInfo.xcprivacy diff --git a/Braintree.podspec b/Braintree.podspec index d63687c37e..907d31b3e9 100644 --- a/Braintree.podspec +++ b/Braintree.podspec @@ -30,6 +30,7 @@ Pod::Spec.new do |s| s.subspec "ApplePay" do |s| s.source_files = "Sources/BraintreeApplePay/*.swift" s.dependency "Braintree/Core" + s.resource_bundle = { "BraintreeApplePay_PrivacyInfo" => "Sources/BraintreeApplePay/PrivacyInfo.xcprivacy" } s.frameworks = "PassKit" end diff --git a/Braintree.xcodeproj/project.pbxproj b/Braintree.xcodeproj/project.pbxproj index adc8d4f9f1..210e81e976 100644 --- a/Braintree.xcodeproj/project.pbxproj +++ b/Braintree.xcodeproj/project.pbxproj @@ -72,6 +72,7 @@ 57D9436E2968A8080079EAB1 /* BTPayPalLocaleCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D9436D2968A8080079EAB1 /* BTPayPalLocaleCode.swift */; }; 57D94370296CC79B0079EAB1 /* BraintreePayPal_IntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D9436F296CC79B0079EAB1 /* BraintreePayPal_IntegrationTests.swift */; }; 57D94372296CCA2F0079EAB1 /* String+NonceValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D94371296CCA2F0079EAB1 /* String+NonceValidation.swift */; }; + 6298A1992B91010600E46EDF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */; }; 800E78C429E0DD5300D1B0FC /* FPTIBatchData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E78C329E0DD5300D1B0FC /* FPTIBatchData.swift */; }; 800FC544257FDC5100DEE132 /* BTApplePayCardNonce_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FC543257FDC5100DEE132 /* BTApplePayCardNonce_Tests.swift */; }; 804326BF2B1A5C5B0044E90B /* BTApplePaymentTokensRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 804326BE2B1A5C5B0044E90B /* BTApplePaymentTokensRequest.swift */; }; @@ -697,6 +698,7 @@ 57D9436F296CC79B0079EAB1 /* BraintreePayPal_IntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BraintreePayPal_IntegrationTests.swift; sourceTree = ""; }; 57D94371296CCA2F0079EAB1 /* String+NonceValidation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+NonceValidation.swift"; sourceTree = ""; }; 59A4135427B90CD7AE94D5CC /* Pods-Tests-IntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-IntegrationTests.debug.xcconfig"; path = "Target Support Files/Pods-Tests-IntegrationTests/Pods-Tests-IntegrationTests.debug.xcconfig"; sourceTree = ""; }; + 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 800E23DC22206A8300C5D22E /* BTThreeDSecureAuthenticateJWT_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTThreeDSecureAuthenticateJWT_Tests.swift; sourceTree = ""; }; 800E78C329E0DD5300D1B0FC /* FPTIBatchData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FPTIBatchData.swift; sourceTree = ""; }; 800FC543257FDC5100DEE132 /* BTApplePayCardNonce_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTApplePayCardNonce_Tests.swift; sourceTree = ""; }; @@ -1481,6 +1483,7 @@ BE895C6229944BD3008112AB /* BTApplePayError.swift */, 804326BE2B1A5C5B0044E90B /* BTApplePaymentTokensRequest.swift */, BE7A9643299FC5DE009AB920 /* BTConfiguration+ApplePay.swift */, + 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */, ); path = BraintreeApplePay; sourceTree = ""; @@ -2515,6 +2518,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 6298A1992B91010600E46EDF /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Package.swift b/Package.swift index 79afe54099..abedec4b1c 100644 --- a/Package.swift +++ b/Package.swift @@ -62,7 +62,8 @@ let package = Package( ), .target( name: "BraintreeApplePay", - dependencies: ["BraintreeCore"] + dependencies: ["BraintreeCore"], + resources: [.copy("PrivacyInfo.xcprivacy")] ), .target( name: "BraintreeCard", diff --git a/Sources/BraintreeApplePay/PrivacyInfo.xcprivacy b/Sources/BraintreeApplePay/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..85d25e638a --- /dev/null +++ b/Sources/BraintreeApplePay/PrivacyInfo.xcprivacy @@ -0,0 +1,21 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePaymentInfo + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + + From c0abf812621f97702829445f13cd1ec8101d7f13 Mon Sep 17 00:00:00 2001 From: scannillo <35243507+scannillo@users.noreply.github.com> Date: Tue, 5 Mar 2024 13:07:49 -0600 Subject: [PATCH 03/13] Add Privacy manifest file to BraintreeCard module (#1199) --- Braintree.podspec | 1 + Braintree.xcodeproj/project.pbxproj | 4 +++ Package.swift | 3 +- Sources/BraintreeCard/PrivacyInfo.xcprivacy | 33 +++++++++++++++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 Sources/BraintreeCard/PrivacyInfo.xcprivacy diff --git a/Braintree.podspec b/Braintree.podspec index 907d31b3e9..4116ec42d2 100644 --- a/Braintree.podspec +++ b/Braintree.podspec @@ -37,6 +37,7 @@ Pod::Spec.new do |s| s.subspec "Card" do |s| s.source_files = "Sources/BraintreeCard/*.swift" s.dependency "Braintree/Core" + s.resource_bundle = { "BraintreeCard_PrivacyInfo" => "Sources/BraintreeCard/PrivacyInfo.xcprivacy" } end s.subspec "Core" do |s| diff --git a/Braintree.xcodeproj/project.pbxproj b/Braintree.xcodeproj/project.pbxproj index 210e81e976..2494d2e274 100644 --- a/Braintree.xcodeproj/project.pbxproj +++ b/Braintree.xcodeproj/project.pbxproj @@ -89,6 +89,7 @@ 8053F05929FB2F700076F988 /* URL+IsPayPal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8053F05829FB2F700076F988 /* URL+IsPayPal.swift */; }; 80581A8C25531D0A00006F53 /* BTConfiguration+ThreeDSecure_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80581A8B25531D0A00006F53 /* BTConfiguration+ThreeDSecure_Tests.swift */; }; 80581B1D2553319C00006F53 /* BTGraphQLHTTP_SSLPinning_IntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80581B1C2553319C00006F53 /* BTGraphQLHTTP_SSLPinning_IntegrationTests.swift */; }; + 806C85632B90EBED00A2754C /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 806C85622B90EBED00A2754C /* PrivacyInfo.xcprivacy */; }; 8075CBEE2B1B735200CA6265 /* BTAPIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8075CBED2B1B735200CA6265 /* BTAPIRequest.swift */; }; 80842DA72B8E49EF00A5CD92 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 80842DA62B8E49EF00A5CD92 /* PrivacyInfo.xcprivacy */; }; 80A6C6192B21205900416D50 /* UIApplication+URLOpener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A6C6182B21205900416D50 /* UIApplication+URLOpener.swift */; }; @@ -717,6 +718,7 @@ 80581A8B25531D0A00006F53 /* BTConfiguration+ThreeDSecure_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BTConfiguration+ThreeDSecure_Tests.swift"; sourceTree = ""; }; 80581B1C2553319C00006F53 /* BTGraphQLHTTP_SSLPinning_IntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTGraphQLHTTP_SSLPinning_IntegrationTests.swift; sourceTree = ""; }; 805FD35B2331780F0000B514 /* BTPostalAddress_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTPostalAddress_Tests.swift; sourceTree = ""; }; + 806C85622B90EBED00A2754C /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 8075CBED2B1B735200CA6265 /* BTAPIRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTAPIRequest.swift; sourceTree = ""; }; 80842DA62B8E49EF00A5CD92 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 80A1EE3D2236AAC600F6218B /* BTThreeDSecureAdditionalInformation_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTThreeDSecureAdditionalInformation_Tests.swift; sourceTree = ""; }; @@ -1499,6 +1501,7 @@ BE80C00A29C66F4800793A6C /* BTCardNonce.swift */, BE80C00829C559B800793A6C /* BTCardRequest.swift */, BE80C00629C5516E00793A6C /* BTThreeDSecureInfo.swift */, + 806C85622B90EBED00A2754C /* PrivacyInfo.xcprivacy */, ); path = BraintreeCard; sourceTree = ""; @@ -2526,6 +2529,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 806C85632B90EBED00A2754C /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Package.swift b/Package.swift index abedec4b1c..53d0d59748 100644 --- a/Package.swift +++ b/Package.swift @@ -67,7 +67,8 @@ let package = Package( ), .target( name: "BraintreeCard", - dependencies: ["BraintreeCore"] + dependencies: ["BraintreeCore"], + resources: [.copy("PrivacyInfo.xcprivacy")] ), .target( name: "BraintreeCore", diff --git a/Sources/BraintreeCard/PrivacyInfo.xcprivacy b/Sources/BraintreeCard/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..2085942ccb --- /dev/null +++ b/Sources/BraintreeCard/PrivacyInfo.xcprivacy @@ -0,0 +1,33 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePaymentInfo + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePhysicalAddress + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + + From 9a416588df3ae4cc837036de1ef719e195c90c10 Mon Sep 17 00:00:00 2001 From: agedd <105314544+agedd@users.noreply.github.com> Date: Wed, 6 Mar 2024 09:37:53 -0600 Subject: [PATCH 04/13] add privacy manifest to core module (#1202) --- Braintree.podspec | 1 + Braintree.xcodeproj/project.pbxproj | 4 +++ Package.swift | 3 +- Sources/BraintreeCore/PrivacyInfo.xcprivacy | 33 +++++++++++++++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 Sources/BraintreeCore/PrivacyInfo.xcprivacy diff --git a/Braintree.podspec b/Braintree.podspec index 4116ec42d2..c59bbf0d1e 100644 --- a/Braintree.podspec +++ b/Braintree.podspec @@ -43,6 +43,7 @@ Pod::Spec.new do |s| s.subspec "Core" do |s| s.source_files = "Sources/BraintreeCore/**/*.{swift,h}" s.public_header_files = "Sources/BraintreeCore/*.h" + s.resource_bundle = { "BraintreeCore_PrivacyInfo" => "Sources/BraintreeCore/PrivacyInfo.xcprivacy" } end s.subspec "DataCollector" do |s| diff --git a/Braintree.xcodeproj/project.pbxproj b/Braintree.xcodeproj/project.pbxproj index 2494d2e274..d63dbfb17f 100644 --- a/Braintree.xcodeproj/project.pbxproj +++ b/Braintree.xcodeproj/project.pbxproj @@ -73,6 +73,7 @@ 57D94370296CC79B0079EAB1 /* BraintreePayPal_IntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D9436F296CC79B0079EAB1 /* BraintreePayPal_IntegrationTests.swift */; }; 57D94372296CCA2F0079EAB1 /* String+NonceValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D94371296CCA2F0079EAB1 /* String+NonceValidation.swift */; }; 6298A1992B91010600E46EDF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */; }; + 62A746412B9255AC003D32FF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62A746402B9255AC003D32FF /* PrivacyInfo.xcprivacy */; }; 800E78C429E0DD5300D1B0FC /* FPTIBatchData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E78C329E0DD5300D1B0FC /* FPTIBatchData.swift */; }; 800FC544257FDC5100DEE132 /* BTApplePayCardNonce_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FC543257FDC5100DEE132 /* BTApplePayCardNonce_Tests.swift */; }; 804326BF2B1A5C5B0044E90B /* BTApplePaymentTokensRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 804326BE2B1A5C5B0044E90B /* BTApplePaymentTokensRequest.swift */; }; @@ -700,6 +701,7 @@ 57D94371296CCA2F0079EAB1 /* String+NonceValidation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+NonceValidation.swift"; sourceTree = ""; }; 59A4135427B90CD7AE94D5CC /* Pods-Tests-IntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-IntegrationTests.debug.xcconfig"; path = "Target Support Files/Pods-Tests-IntegrationTests/Pods-Tests-IntegrationTests.debug.xcconfig"; sourceTree = ""; }; 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + 62A746402B9255AC003D32FF /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 800E23DC22206A8300C5D22E /* BTThreeDSecureAuthenticateJWT_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTThreeDSecureAuthenticateJWT_Tests.swift; sourceTree = ""; }; 800E78C329E0DD5300D1B0FC /* FPTIBatchData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FPTIBatchData.swift; sourceTree = ""; }; 800FC543257FDC5100DEE132 /* BTApplePayCardNonce_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTApplePayCardNonce_Tests.swift; sourceTree = ""; }; @@ -1230,6 +1232,7 @@ 8053F05829FB2F700076F988 /* URL+IsPayPal.swift */, BE7FA4C5291AC9B6003C6B63 /* Info.plist */, BEBC6E5D2927CF59004E25A0 /* Braintree.h */, + 62A746402B9255AC003D32FF /* PrivacyInfo.xcprivacy */, ); path = BraintreeCore; sourceTree = ""; @@ -2479,6 +2482,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 62A746412B9255AC003D32FF /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Package.swift b/Package.swift index 53d0d59748..673e489ca3 100644 --- a/Package.swift +++ b/Package.swift @@ -72,7 +72,8 @@ let package = Package( ), .target( name: "BraintreeCore", - exclude: ["Info.plist", "Braintree.h"] + exclude: ["Info.plist", "Braintree.h"], + resources: [.copy("PrivacyInfo.xcprivacy")] ), .target( name: "BraintreeDataCollector", diff --git a/Sources/BraintreeCore/PrivacyInfo.xcprivacy b/Sources/BraintreeCore/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..f45123d818 --- /dev/null +++ b/Sources/BraintreeCore/PrivacyInfo.xcprivacy @@ -0,0 +1,33 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeName + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePhysicalAddress + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + + From fe31f1527f2b2f84e56ff34f4217ea665f6fba7a Mon Sep 17 00:00:00 2001 From: agedd <105314544+agedd@users.noreply.github.com> Date: Wed, 6 Mar 2024 10:12:15 -0600 Subject: [PATCH 05/13] [iOS] Add Privacy Manifest to SEPADirectDebit module (#1204) * add privacy manifest to sepa-direct-debit * fix resource tag --- Braintree.podspec | 1 + Braintree.xcodeproj/project.pbxproj | 12 ++--- Package.swift | 3 +- .../PrivacyInfo.xcprivacy | 45 +++++++++++++++++++ 4 files changed, 52 insertions(+), 9 deletions(-) create mode 100644 Sources/BraintreeSEPADirectDebit/PrivacyInfo.xcprivacy diff --git a/Braintree.podspec b/Braintree.podspec index c59bbf0d1e..c91c484d0c 100644 --- a/Braintree.podspec +++ b/Braintree.podspec @@ -67,6 +67,7 @@ Pod::Spec.new do |s| s.subspec "SEPADirectDebit" do |s| s.source_files = "Sources/BraintreeSEPADirectDebit/*.swift" s.dependency "Braintree/Core" + s.resource_bundle = { "BraintreeSEPADirectDebit_PrivacyInfo" => "Sources/BraintreeSEPADirectDebit/PrivacyInfo.xcprivacy" } end s.subspec "PayPalNativeCheckout" do |s| diff --git a/Braintree.xcodeproj/project.pbxproj b/Braintree.xcodeproj/project.pbxproj index d63dbfb17f..5a9bc5f022 100644 --- a/Braintree.xcodeproj/project.pbxproj +++ b/Braintree.xcodeproj/project.pbxproj @@ -73,7 +73,7 @@ 57D94370296CC79B0079EAB1 /* BraintreePayPal_IntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D9436F296CC79B0079EAB1 /* BraintreePayPal_IntegrationTests.swift */; }; 57D94372296CCA2F0079EAB1 /* String+NonceValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D94371296CCA2F0079EAB1 /* String+NonceValidation.swift */; }; 6298A1992B91010600E46EDF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */; }; - 62A746412B9255AC003D32FF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62A746402B9255AC003D32FF /* PrivacyInfo.xcprivacy */; }; + 62DE8FBF2B9656BF00F08F53 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62DE8FBE2B9656BF00F08F53 /* PrivacyInfo.xcprivacy */; }; 800E78C429E0DD5300D1B0FC /* FPTIBatchData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E78C329E0DD5300D1B0FC /* FPTIBatchData.swift */; }; 800FC544257FDC5100DEE132 /* BTApplePayCardNonce_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FC543257FDC5100DEE132 /* BTApplePayCardNonce_Tests.swift */; }; 804326BF2B1A5C5B0044E90B /* BTApplePaymentTokensRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 804326BE2B1A5C5B0044E90B /* BTApplePaymentTokensRequest.swift */; }; @@ -90,7 +90,6 @@ 8053F05929FB2F700076F988 /* URL+IsPayPal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8053F05829FB2F700076F988 /* URL+IsPayPal.swift */; }; 80581A8C25531D0A00006F53 /* BTConfiguration+ThreeDSecure_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80581A8B25531D0A00006F53 /* BTConfiguration+ThreeDSecure_Tests.swift */; }; 80581B1D2553319C00006F53 /* BTGraphQLHTTP_SSLPinning_IntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80581B1C2553319C00006F53 /* BTGraphQLHTTP_SSLPinning_IntegrationTests.swift */; }; - 806C85632B90EBED00A2754C /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 806C85622B90EBED00A2754C /* PrivacyInfo.xcprivacy */; }; 8075CBEE2B1B735200CA6265 /* BTAPIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8075CBED2B1B735200CA6265 /* BTAPIRequest.swift */; }; 80842DA72B8E49EF00A5CD92 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 80842DA62B8E49EF00A5CD92 /* PrivacyInfo.xcprivacy */; }; 80A6C6192B21205900416D50 /* UIApplication+URLOpener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A6C6182B21205900416D50 /* UIApplication+URLOpener.swift */; }; @@ -701,7 +700,7 @@ 57D94371296CCA2F0079EAB1 /* String+NonceValidation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+NonceValidation.swift"; sourceTree = ""; }; 59A4135427B90CD7AE94D5CC /* Pods-Tests-IntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-IntegrationTests.debug.xcconfig"; path = "Target Support Files/Pods-Tests-IntegrationTests/Pods-Tests-IntegrationTests.debug.xcconfig"; sourceTree = ""; }; 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; - 62A746402B9255AC003D32FF /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + 62DE8FBE2B9656BF00F08F53 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 800E23DC22206A8300C5D22E /* BTThreeDSecureAuthenticateJWT_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTThreeDSecureAuthenticateJWT_Tests.swift; sourceTree = ""; }; 800E78C329E0DD5300D1B0FC /* FPTIBatchData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FPTIBatchData.swift; sourceTree = ""; }; 800FC543257FDC5100DEE132 /* BTApplePayCardNonce_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTApplePayCardNonce_Tests.swift; sourceTree = ""; }; @@ -720,7 +719,6 @@ 80581A8B25531D0A00006F53 /* BTConfiguration+ThreeDSecure_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BTConfiguration+ThreeDSecure_Tests.swift"; sourceTree = ""; }; 80581B1C2553319C00006F53 /* BTGraphQLHTTP_SSLPinning_IntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTGraphQLHTTP_SSLPinning_IntegrationTests.swift; sourceTree = ""; }; 805FD35B2331780F0000B514 /* BTPostalAddress_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTPostalAddress_Tests.swift; sourceTree = ""; }; - 806C85622B90EBED00A2754C /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 8075CBED2B1B735200CA6265 /* BTAPIRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTAPIRequest.swift; sourceTree = ""; }; 80842DA62B8E49EF00A5CD92 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 80A1EE3D2236AAC600F6218B /* BTThreeDSecureAdditionalInformation_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTThreeDSecureAdditionalInformation_Tests.swift; sourceTree = ""; }; @@ -1232,7 +1230,6 @@ 8053F05829FB2F700076F988 /* URL+IsPayPal.swift */, BE7FA4C5291AC9B6003C6B63 /* Info.plist */, BEBC6E5D2927CF59004E25A0 /* Braintree.h */, - 62A746402B9255AC003D32FF /* PrivacyInfo.xcprivacy */, ); path = BraintreeCore; sourceTree = ""; @@ -1504,7 +1501,6 @@ BE80C00A29C66F4800793A6C /* BTCardNonce.swift */, BE80C00829C559B800793A6C /* BTCardRequest.swift */, BE80C00629C5516E00793A6C /* BTThreeDSecureInfo.swift */, - 806C85622B90EBED00A2754C /* PrivacyInfo.xcprivacy */, ); path = BraintreeCard; sourceTree = ""; @@ -1751,6 +1747,7 @@ BEF177A52B51C7ED004F0F35 /* SEPADebitAccountsRequest.swift */, BEF177A72B51D6A7004F0F35 /* SEPADebitRequest.swift */, BE0B163E27E0CD7C00868C77 /* SEPADirectDebitAPI.swift */, + 62DE8FBE2B9656BF00F08F53 /* PrivacyInfo.xcprivacy */, ); path = BraintreeSEPADirectDebit; sourceTree = ""; @@ -2482,7 +2479,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 62A746412B9255AC003D32FF /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2533,7 +2529,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 806C85632B90EBED00A2754C /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2625,6 +2620,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 62DE8FBF2B9656BF00F08F53 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Package.swift b/Package.swift index 673e489ca3..e08a1b6a66 100644 --- a/Package.swift +++ b/Package.swift @@ -100,7 +100,8 @@ let package = Package( .target( name: "BraintreeSEPADirectDebit", dependencies: ["BraintreeCore"], - path: "Sources/BraintreeSEPADirectDebit" + path: "Sources/BraintreeSEPADirectDebit", + resources: [.copy("PrivacyInfo.xcprivacy")] ), .target( name: "BraintreeThreeDSecure", diff --git a/Sources/BraintreeSEPADirectDebit/PrivacyInfo.xcprivacy b/Sources/BraintreeSEPADirectDebit/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..4729d26fda --- /dev/null +++ b/Sources/BraintreeSEPADirectDebit/PrivacyInfo.xcprivacy @@ -0,0 +1,45 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePhysicalAddress + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePaymentInfo + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeName + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + + From b10d235912a2b57c010e378b7f06d2b57f5743ee Mon Sep 17 00:00:00 2001 From: agedd <105314544+agedd@users.noreply.github.com> Date: Thu, 7 Mar 2024 10:43:06 -0600 Subject: [PATCH 06/13] add privacy manifest changes to threedsecure module (#1207) --- Braintree.podspec | 1 + Braintree.xcodeproj/project.pbxproj | 4 ++ Package.swift | 3 +- .../PrivacyInfo.xcprivacy | 69 +++++++++++++++++++ 4 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 Sources/BraintreeThreeDSecure/PrivacyInfo.xcprivacy diff --git a/Braintree.podspec b/Braintree.podspec index c91c484d0c..2ee325dc44 100644 --- a/Braintree.podspec +++ b/Braintree.podspec @@ -81,6 +81,7 @@ Pod::Spec.new do |s| s.source_files = "Sources/BraintreeThreeDSecure/**/*.{swift}" s.dependency "Braintree/Card" s.vendored_frameworks = "Frameworks/XCFrameworks/CardinalMobile.xcframework" + s.resource_bundle = { "BraintreeThreeDSecure_PrivacyInfo" => "Sources/BraintreeThreeDSecure/PrivacyInfo.xcprivacy" } end s.subspec "Venmo" do |s| diff --git a/Braintree.xcodeproj/project.pbxproj b/Braintree.xcodeproj/project.pbxproj index 5a9bc5f022..50a258fbd4 100644 --- a/Braintree.xcodeproj/project.pbxproj +++ b/Braintree.xcodeproj/project.pbxproj @@ -72,6 +72,7 @@ 57D9436E2968A8080079EAB1 /* BTPayPalLocaleCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D9436D2968A8080079EAB1 /* BTPayPalLocaleCode.swift */; }; 57D94370296CC79B0079EAB1 /* BraintreePayPal_IntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D9436F296CC79B0079EAB1 /* BraintreePayPal_IntegrationTests.swift */; }; 57D94372296CCA2F0079EAB1 /* String+NonceValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D94371296CCA2F0079EAB1 /* String+NonceValidation.swift */; }; + 62236E1A2B98CFB000CDCC37 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62236E192B98CFB000CDCC37 /* PrivacyInfo.xcprivacy */; }; 6298A1992B91010600E46EDF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */; }; 62DE8FBF2B9656BF00F08F53 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62DE8FBE2B9656BF00F08F53 /* PrivacyInfo.xcprivacy */; }; 800E78C429E0DD5300D1B0FC /* FPTIBatchData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E78C329E0DD5300D1B0FC /* FPTIBatchData.swift */; }; @@ -699,6 +700,7 @@ 57D9436F296CC79B0079EAB1 /* BraintreePayPal_IntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BraintreePayPal_IntegrationTests.swift; sourceTree = ""; }; 57D94371296CCA2F0079EAB1 /* String+NonceValidation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+NonceValidation.swift"; sourceTree = ""; }; 59A4135427B90CD7AE94D5CC /* Pods-Tests-IntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-IntegrationTests.debug.xcconfig"; path = "Target Support Files/Pods-Tests-IntegrationTests/Pods-Tests-IntegrationTests.debug.xcconfig"; sourceTree = ""; }; + 62236E192B98CFB000CDCC37 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 62DE8FBE2B9656BF00F08F53 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 800E23DC22206A8300C5D22E /* BTThreeDSecureAuthenticateJWT_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTThreeDSecureAuthenticateJWT_Tests.swift; sourceTree = ""; }; @@ -1585,6 +1587,7 @@ BE01A83E29D32CA0000DFA24 /* BTThreeDSecureV2Provider.swift */, 80CD33FF2A6042FC009545F5 /* CardinalSessionTestable.swift */, 801A0A1725890DF200DAF851 /* V2UICustomization */, + 62236E192B98CFB000CDCC37 /* PrivacyInfo.xcprivacy */, ); path = BraintreeThreeDSecure; sourceTree = ""; @@ -2550,6 +2553,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 62236E1A2B98CFB000CDCC37 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Package.swift b/Package.swift index e08a1b6a66..2e7e87ff49 100644 --- a/Package.swift +++ b/Package.swift @@ -105,7 +105,8 @@ let package = Package( ), .target( name: "BraintreeThreeDSecure", - dependencies: ["BraintreeCard", "CardinalMobile", "PPRiskMagnes", "BraintreeCore"] + dependencies: ["BraintreeCard", "CardinalMobile", "PPRiskMagnes", "BraintreeCore"], + resources: [.copy("PrivacyInfo.xcprivacy")] ), .binaryTarget( name: "CardinalMobile", diff --git a/Sources/BraintreeThreeDSecure/PrivacyInfo.xcprivacy b/Sources/BraintreeThreeDSecure/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..743c2bf6be --- /dev/null +++ b/Sources/BraintreeThreeDSecure/PrivacyInfo.xcprivacy @@ -0,0 +1,69 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePhoneNumber + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeEmailAddress + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePaymentInfo + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePhysicalAddress + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeName + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + + From b5e68db66729acf2720e6bb7424f12524fa5fa03 Mon Sep 17 00:00:00 2001 From: agedd <105314544+agedd@users.noreply.github.com> Date: Mon, 11 Mar 2024 09:40:54 -0500 Subject: [PATCH 07/13] [iOS] Add Privacy Manifest to PayPal Module (#1206) * add privacy manifest to paypal module * add missing files --- Braintree.podspec | 1 + Braintree.xcodeproj/project.pbxproj | 12 +++++++ Package.swift | 3 +- Sources/BraintreePayPal/PrivacyInfo.xcprivacy | 33 +++++++++++++++++++ 4 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 Sources/BraintreePayPal/PrivacyInfo.xcprivacy diff --git a/Braintree.podspec b/Braintree.podspec index 2ee325dc44..45cd201dc4 100644 --- a/Braintree.podspec +++ b/Braintree.podspec @@ -62,6 +62,7 @@ Pod::Spec.new do |s| s.source_files = "Sources/BraintreePayPal/**/*.swift" s.dependency "Braintree/Core" s.dependency "Braintree/DataCollector" + s.resource_bundle = { "BraintreePayPal_PrivacyInfo" => "Sources/BraintreePayPal/PrivacyInfo.xcprivacy" } end s.subspec "SEPADirectDebit" do |s| diff --git a/Braintree.xcodeproj/project.pbxproj b/Braintree.xcodeproj/project.pbxproj index 50a258fbd4..dfa1badcd4 100644 --- a/Braintree.xcodeproj/project.pbxproj +++ b/Braintree.xcodeproj/project.pbxproj @@ -74,6 +74,8 @@ 57D94372296CCA2F0079EAB1 /* String+NonceValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D94371296CCA2F0079EAB1 /* String+NonceValidation.swift */; }; 62236E1A2B98CFB000CDCC37 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62236E192B98CFB000CDCC37 /* PrivacyInfo.xcprivacy */; }; 6298A1992B91010600E46EDF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */; }; + 62A659A42B98CB23008DFD67 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62A659A32B98CB23008DFD67 /* PrivacyInfo.xcprivacy */; }; + 62A746412B9255AC003D32FF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62A746402B9255AC003D32FF /* PrivacyInfo.xcprivacy */; }; 62DE8FBF2B9656BF00F08F53 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62DE8FBE2B9656BF00F08F53 /* PrivacyInfo.xcprivacy */; }; 800E78C429E0DD5300D1B0FC /* FPTIBatchData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E78C329E0DD5300D1B0FC /* FPTIBatchData.swift */; }; 800FC544257FDC5100DEE132 /* BTApplePayCardNonce_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FC543257FDC5100DEE132 /* BTApplePayCardNonce_Tests.swift */; }; @@ -91,6 +93,7 @@ 8053F05929FB2F700076F988 /* URL+IsPayPal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8053F05829FB2F700076F988 /* URL+IsPayPal.swift */; }; 80581A8C25531D0A00006F53 /* BTConfiguration+ThreeDSecure_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80581A8B25531D0A00006F53 /* BTConfiguration+ThreeDSecure_Tests.swift */; }; 80581B1D2553319C00006F53 /* BTGraphQLHTTP_SSLPinning_IntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80581B1C2553319C00006F53 /* BTGraphQLHTTP_SSLPinning_IntegrationTests.swift */; }; + 806C85632B90EBED00A2754C /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 806C85622B90EBED00A2754C /* PrivacyInfo.xcprivacy */; }; 8075CBEE2B1B735200CA6265 /* BTAPIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8075CBED2B1B735200CA6265 /* BTAPIRequest.swift */; }; 80842DA72B8E49EF00A5CD92 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 80842DA62B8E49EF00A5CD92 /* PrivacyInfo.xcprivacy */; }; 80A6C6192B21205900416D50 /* UIApplication+URLOpener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A6C6182B21205900416D50 /* UIApplication+URLOpener.swift */; }; @@ -702,6 +705,8 @@ 59A4135427B90CD7AE94D5CC /* Pods-Tests-IntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-IntegrationTests.debug.xcconfig"; path = "Target Support Files/Pods-Tests-IntegrationTests/Pods-Tests-IntegrationTests.debug.xcconfig"; sourceTree = ""; }; 62236E192B98CFB000CDCC37 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + 62A659A32B98CB23008DFD67 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + 62A746402B9255AC003D32FF /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 62DE8FBE2B9656BF00F08F53 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 800E23DC22206A8300C5D22E /* BTThreeDSecureAuthenticateJWT_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTThreeDSecureAuthenticateJWT_Tests.swift; sourceTree = ""; }; 800E78C329E0DD5300D1B0FC /* FPTIBatchData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FPTIBatchData.swift; sourceTree = ""; }; @@ -721,6 +726,7 @@ 80581A8B25531D0A00006F53 /* BTConfiguration+ThreeDSecure_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BTConfiguration+ThreeDSecure_Tests.swift"; sourceTree = ""; }; 80581B1C2553319C00006F53 /* BTGraphQLHTTP_SSLPinning_IntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTGraphQLHTTP_SSLPinning_IntegrationTests.swift; sourceTree = ""; }; 805FD35B2331780F0000B514 /* BTPostalAddress_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTPostalAddress_Tests.swift; sourceTree = ""; }; + 806C85622B90EBED00A2754C /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 8075CBED2B1B735200CA6265 /* BTAPIRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTAPIRequest.swift; sourceTree = ""; }; 80842DA62B8E49EF00A5CD92 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 80A1EE3D2236AAC600F6218B /* BTThreeDSecureAdditionalInformation_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTThreeDSecureAdditionalInformation_Tests.swift; sourceTree = ""; }; @@ -1182,6 +1188,7 @@ 57D9436D2968A8080079EAB1 /* BTPayPalLocaleCode.swift */, BE349112294B798300D2CF68 /* BTPayPalRequest.swift */, BE349110294B77E100D2CF68 /* BTPayPalVaultRequest.swift */, + 62A659A32B98CB23008DFD67 /* PrivacyInfo.xcprivacy */, ); path = BraintreePayPal; sourceTree = ""; @@ -1232,6 +1239,7 @@ 8053F05829FB2F700076F988 /* URL+IsPayPal.swift */, BE7FA4C5291AC9B6003C6B63 /* Info.plist */, BEBC6E5D2927CF59004E25A0 /* Braintree.h */, + 62A746402B9255AC003D32FF /* PrivacyInfo.xcprivacy */, ); path = BraintreeCore; sourceTree = ""; @@ -1503,6 +1511,7 @@ BE80C00A29C66F4800793A6C /* BTCardNonce.swift */, BE80C00829C559B800793A6C /* BTCardRequest.swift */, BE80C00629C5516E00793A6C /* BTThreeDSecureInfo.swift */, + 806C85622B90EBED00A2754C /* PrivacyInfo.xcprivacy */, ); path = BraintreeCard; sourceTree = ""; @@ -2475,6 +2484,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 62A659A42B98CB23008DFD67 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2482,6 +2492,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 62A746412B9255AC003D32FF /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2532,6 +2543,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 806C85632B90EBED00A2754C /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Package.swift b/Package.swift index 2e7e87ff49..5fc71a2537 100644 --- a/Package.swift +++ b/Package.swift @@ -85,7 +85,8 @@ let package = Package( ), .target( name: "BraintreePayPal", - dependencies: ["BraintreeCore", "BraintreeDataCollector"] + dependencies: ["BraintreeCore", "BraintreeDataCollector"], + resources: [.copy("PrivacyInfo.xcprivacy")] ), .target( name: "BraintreePayPalNativeCheckout", diff --git a/Sources/BraintreePayPal/PrivacyInfo.xcprivacy b/Sources/BraintreePayPal/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..6bc425591d --- /dev/null +++ b/Sources/BraintreePayPal/PrivacyInfo.xcprivacy @@ -0,0 +1,33 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePaymentInfo + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeName + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + + From f2cf1aaace17227e6a212c65851b1612885cbbca Mon Sep 17 00:00:00 2001 From: agedd <105314544+agedd@users.noreply.github.com> Date: Wed, 13 Mar 2024 10:54:04 -0500 Subject: [PATCH 08/13] add privacy manifest to paypal-native-checkout-module (#1213) --- Braintree.podspec | 1 + Braintree.xcodeproj/project.pbxproj | 4 +++ Package.swift | 3 +- .../PrivacyInfo.xcprivacy | 33 +++++++++++++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 Sources/BraintreePayPalNativeCheckout/PrivacyInfo.xcprivacy diff --git a/Braintree.podspec b/Braintree.podspec index 45cd201dc4..d996dae9bd 100644 --- a/Braintree.podspec +++ b/Braintree.podspec @@ -76,6 +76,7 @@ Pod::Spec.new do |s| s.dependency "Braintree/Core" s.dependency "Braintree/PayPal" s.dependency "PayPalCheckout", '1.2.0' + s.resource_bundle = { "BraintreePayPalNativeCheckout_PrivacyInfo" => "Sources/BraintreePayPalNativeCheckout/PrivacyInfo.xcprivacy" } end s.subspec "ThreeDSecure" do |s| diff --git a/Braintree.xcodeproj/project.pbxproj b/Braintree.xcodeproj/project.pbxproj index dfa1badcd4..3149092581 100644 --- a/Braintree.xcodeproj/project.pbxproj +++ b/Braintree.xcodeproj/project.pbxproj @@ -76,6 +76,7 @@ 6298A1992B91010600E46EDF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */; }; 62A659A42B98CB23008DFD67 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62A659A32B98CB23008DFD67 /* PrivacyInfo.xcprivacy */; }; 62A746412B9255AC003D32FF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62A746402B9255AC003D32FF /* PrivacyInfo.xcprivacy */; }; + 62D5EC502B9F6E9D00D09C5D /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62D5EC4F2B9F6E9D00D09C5D /* PrivacyInfo.xcprivacy */; }; 62DE8FBF2B9656BF00F08F53 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62DE8FBE2B9656BF00F08F53 /* PrivacyInfo.xcprivacy */; }; 800E78C429E0DD5300D1B0FC /* FPTIBatchData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E78C329E0DD5300D1B0FC /* FPTIBatchData.swift */; }; 800FC544257FDC5100DEE132 /* BTApplePayCardNonce_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FC543257FDC5100DEE132 /* BTApplePayCardNonce_Tests.swift */; }; @@ -707,6 +708,7 @@ 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 62A659A32B98CB23008DFD67 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 62A746402B9255AC003D32FF /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + 62D5EC4F2B9F6E9D00D09C5D /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 62DE8FBE2B9656BF00F08F53 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 800E23DC22206A8300C5D22E /* BTThreeDSecureAuthenticateJWT_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTThreeDSecureAuthenticateJWT_Tests.swift; sourceTree = ""; }; 800E78C329E0DD5300D1B0FC /* FPTIBatchData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FPTIBatchData.swift; sourceTree = ""; }; @@ -1353,6 +1355,7 @@ BE9E07EE2B18FBA000EF32A4 /* BTPayPalNativeCheckoutStartable.swift */, BE9E07F02B18FC0B00EF32A4 /* BTPayPalNativeCheckoutProvider.swift */, BE9E07F22B18FC9200EF32A4 /* BTPayPalNativeCheckoutProtocol.swift */, + 62D5EC4F2B9F6E9D00D09C5D /* PrivacyInfo.xcprivacy */, ); path = BraintreePayPalNativeCheckout; sourceTree = ""; @@ -2500,6 +2503,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 62D5EC502B9F6E9D00D09C5D /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Package.swift b/Package.swift index 5fc71a2537..156031fa40 100644 --- a/Package.swift +++ b/Package.swift @@ -91,7 +91,8 @@ let package = Package( .target( name: "BraintreePayPalNativeCheckout", dependencies: ["BraintreeCore", "BraintreePayPal", "PayPalCheckout"], - path: "Sources/BraintreePayPalNativeCheckout" + path: "Sources/BraintreePayPalNativeCheckout", + resources: [.copy("PrivacyInfo.xcprivacy")] ), .binaryTarget( name: "PayPalCheckout", diff --git a/Sources/BraintreePayPalNativeCheckout/PrivacyInfo.xcprivacy b/Sources/BraintreePayPalNativeCheckout/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..ed6d3c3a38 --- /dev/null +++ b/Sources/BraintreePayPalNativeCheckout/PrivacyInfo.xcprivacy @@ -0,0 +1,33 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePaymentInfo + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeEmailAddress + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + + From 2672a1a11a73215b4210574cb158674a4c7aaba7 Mon Sep 17 00:00:00 2001 From: Victoria Park Date: Wed, 13 Mar 2024 12:28:41 -0700 Subject: [PATCH 09/13] Add Venmo Privacy Manifest File (#1219) * Add Privacy Manifest to Venmo Module * fix spacing on Package.swift change --- Braintree.podspec | 1 + Braintree.xcodeproj/project.pbxproj | 4 ++++ Package.swift | 3 ++- Sources/BraintreeVenmo/PrivacyInfo.xcprivacy | 21 ++++++++++++++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 Sources/BraintreeVenmo/PrivacyInfo.xcprivacy diff --git a/Braintree.podspec b/Braintree.podspec index d996dae9bd..554cd1d0f0 100644 --- a/Braintree.podspec +++ b/Braintree.podspec @@ -89,6 +89,7 @@ Pod::Spec.new do |s| s.subspec "Venmo" do |s| s.source_files = "Sources/BraintreeVenmo/*.swift" s.dependency "Braintree/Core" + s.resource_bundle = { "BraintreeVenmo_PrivacyInfo" => "Sources/BraintreeVenmo/PrivacyInfo.xcprivacy" } end end diff --git a/Braintree.xcodeproj/project.pbxproj b/Braintree.xcodeproj/project.pbxproj index 3149092581..b6f3d3ce2a 100644 --- a/Braintree.xcodeproj/project.pbxproj +++ b/Braintree.xcodeproj/project.pbxproj @@ -20,6 +20,7 @@ 3B7A261429C35BD00087059D /* BTPayPalAnalytics_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B7A261229C35B670087059D /* BTPayPalAnalytics_Tests.swift */; }; 3BC0E09229E4673C009217D6 /* BTSEPADirectAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BC0E09129E4673C009217D6 /* BTSEPADirectAnalytics.swift */; }; 3BC0E09429E46C58009217D6 /* BTSEPADirectAnalytics_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BC0E09329E46C58009217D6 /* BTSEPADirectAnalytics_Tests.swift */; }; + 3BE7386F2BA171A300598F05 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 3BE7386E2BA171A300598F05 /* PrivacyInfo.xcprivacy */; }; 3BE8FFFC29EDDAF500869166 /* BTLocalPaymentAnalytics_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BE8FFFB29EDDAF500869166 /* BTLocalPaymentAnalytics_Tests.swift */; }; 3BEB03C529FD55CA001133D5 /* BTThreeDSecureAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BEB03C429FD55CA001133D5 /* BTThreeDSecureAnalytics.swift */; }; 3BEB03C829FD5716001133D5 /* BTThreeDSecureAnalytics_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BEB03C629FD5669001133D5 /* BTThreeDSecureAnalytics_Tests.swift */; }; @@ -636,6 +637,7 @@ 3B7A261229C35B670087059D /* BTPayPalAnalytics_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTPayPalAnalytics_Tests.swift; sourceTree = ""; }; 3BC0E09129E4673C009217D6 /* BTSEPADirectAnalytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTSEPADirectAnalytics.swift; sourceTree = ""; }; 3BC0E09329E46C58009217D6 /* BTSEPADirectAnalytics_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTSEPADirectAnalytics_Tests.swift; sourceTree = ""; }; + 3BE7386E2BA171A300598F05 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 3BE8FFFB29EDDAF500869166 /* BTLocalPaymentAnalytics_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTLocalPaymentAnalytics_Tests.swift; sourceTree = ""; }; 3BEB03C429FD55CA001133D5 /* BTThreeDSecureAnalytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTThreeDSecureAnalytics.swift; sourceTree = ""; }; 3BEB03C629FD5669001133D5 /* BTThreeDSecureAnalytics_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTThreeDSecureAnalytics_Tests.swift; sourceTree = ""; }; @@ -1531,6 +1533,7 @@ BE0AF6BA29AFD53300245C2C /* BTVenmoError.swift */, 096C6B2529CCDCEB00912863 /* BTVenmoLineItem.swift */, BE0AF6BE29AFF13200245C2C /* BTVenmoRequest.swift */, + 3BE7386E2BA171A300598F05 /* PrivacyInfo.xcprivacy */, ); path = BraintreeVenmo; sourceTree = ""; @@ -2525,6 +2528,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 3BE7386F2BA171A300598F05 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Package.swift b/Package.swift index 156031fa40..031aafaece 100644 --- a/Package.swift +++ b/Package.swift @@ -116,7 +116,8 @@ let package = Package( ), .target( name: "BraintreeVenmo", - dependencies: ["BraintreeCore"] + dependencies: ["BraintreeCore"], + resources: [.copy("PrivacyInfo.xcprivacy")] ), .binaryTarget( name: "PPRiskMagnes", diff --git a/Sources/BraintreeVenmo/PrivacyInfo.xcprivacy b/Sources/BraintreeVenmo/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..85d25e638a --- /dev/null +++ b/Sources/BraintreeVenmo/PrivacyInfo.xcprivacy @@ -0,0 +1,21 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePaymentInfo + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + + From 4a77359020b2b1ff548af5127724e2473c6c2733 Mon Sep 17 00:00:00 2001 From: agedd <105314544+agedd@users.noreply.github.com> Date: Thu, 14 Mar 2024 10:54:04 -0500 Subject: [PATCH 10/13] add privacy manifest for datacollector (#1220) --- Braintree.podspec | 1 + Braintree.xcodeproj/project.pbxproj | 4 ++++ Package.swift | 3 ++- .../PrivacyInfo.xcprivacy | 21 +++++++++++++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 Sources/BraintreeDataCollector/PrivacyInfo.xcprivacy diff --git a/Braintree.podspec b/Braintree.podspec index 554cd1d0f0..5545718b3d 100644 --- a/Braintree.podspec +++ b/Braintree.podspec @@ -50,6 +50,7 @@ Pod::Spec.new do |s| s.source_files = "Sources/BraintreeDataCollector/*.swift" s.dependency "Braintree/Core" s.vendored_frameworks = "Frameworks/XCFrameworks/PPRiskMagnes.xcframework" + s.resource_bundle = { "BraintreeDataCollector_PrivacyInfo" => "Sources/BraintreeDataCollector/PrivacyInfo.xcprivacy"} end s.subspec "LocalPayment" do |s| diff --git a/Braintree.xcodeproj/project.pbxproj b/Braintree.xcodeproj/project.pbxproj index b6f3d3ce2a..027eaeddd1 100644 --- a/Braintree.xcodeproj/project.pbxproj +++ b/Braintree.xcodeproj/project.pbxproj @@ -73,6 +73,7 @@ 57D9436E2968A8080079EAB1 /* BTPayPalLocaleCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D9436D2968A8080079EAB1 /* BTPayPalLocaleCode.swift */; }; 57D94370296CC79B0079EAB1 /* BraintreePayPal_IntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D9436F296CC79B0079EAB1 /* BraintreePayPal_IntegrationTests.swift */; }; 57D94372296CCA2F0079EAB1 /* String+NonceValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57D94371296CCA2F0079EAB1 /* String+NonceValidation.swift */; }; + 620C3C652BA21E5700C40A03 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 620C3C642BA21E5700C40A03 /* PrivacyInfo.xcprivacy */; }; 62236E1A2B98CFB000CDCC37 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62236E192B98CFB000CDCC37 /* PrivacyInfo.xcprivacy */; }; 6298A1992B91010600E46EDF /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */; }; 62A659A42B98CB23008DFD67 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 62A659A32B98CB23008DFD67 /* PrivacyInfo.xcprivacy */; }; @@ -706,6 +707,7 @@ 57D9436F296CC79B0079EAB1 /* BraintreePayPal_IntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BraintreePayPal_IntegrationTests.swift; sourceTree = ""; }; 57D94371296CCA2F0079EAB1 /* String+NonceValidation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+NonceValidation.swift"; sourceTree = ""; }; 59A4135427B90CD7AE94D5CC /* Pods-Tests-IntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-IntegrationTests.debug.xcconfig"; path = "Target Support Files/Pods-Tests-IntegrationTests/Pods-Tests-IntegrationTests.debug.xcconfig"; sourceTree = ""; }; + 620C3C642BA21E5700C40A03 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 62236E192B98CFB000CDCC37 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 6298A1982B91010600E46EDF /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 62A659A32B98CB23008DFD67 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; @@ -1463,6 +1465,7 @@ children = ( BE57E1122847F8C9002CFBAC /* BTDataCollector.swift */, BE70A962284FA3F000F6D3F7 /* BTDataCollectorError.swift */, + 620C3C642BA21E5700C40A03 /* PrivacyInfo.xcprivacy */, ); path = BraintreeDataCollector; sourceTree = ""; @@ -2521,6 +2524,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 620C3C652BA21E5700C40A03 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Package.swift b/Package.swift index 031aafaece..53df812ff7 100644 --- a/Package.swift +++ b/Package.swift @@ -77,7 +77,8 @@ let package = Package( ), .target( name: "BraintreeDataCollector", - dependencies: ["BraintreeCore", "PPRiskMagnes"] + dependencies: ["BraintreeCore", "PPRiskMagnes"], + resources: [.copy("PrivacyInfo.xcprivacy")] ), .target( name: "BraintreeLocalPayment", diff --git a/Sources/BraintreeDataCollector/PrivacyInfo.xcprivacy b/Sources/BraintreeDataCollector/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..fb0d830920 --- /dev/null +++ b/Sources/BraintreeDataCollector/PrivacyInfo.xcprivacy @@ -0,0 +1,21 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeDeviceID + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + + From f49892a4949b872b14ee152775fcd6692828ef78 Mon Sep 17 00:00:00 2001 From: Victoria Park Date: Thu, 14 Mar 2024 09:04:19 -0700 Subject: [PATCH 11/13] Add ProvacyInfo.xcprivacy to LocalPayment Module (#1221) --- Braintree.podspec | 1 + Braintree.xcodeproj/project.pbxproj | 4 ++ Package.swift | 3 +- .../PrivacyInfo.xcprivacy | 57 +++++++++++++++++++ 4 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 Sources/BraintreeLocalPayment/PrivacyInfo.xcprivacy diff --git a/Braintree.podspec b/Braintree.podspec index 5545718b3d..9c8cd87511 100644 --- a/Braintree.podspec +++ b/Braintree.podspec @@ -57,6 +57,7 @@ Pod::Spec.new do |s| s.source_files = "Sources/BraintreeLocalPayment/*.swift" s.dependency "Braintree/Core" s.dependency "Braintree/DataCollector" + s.resource_bundle = { "BraintreeLocalPayment_PrivacyInfo" => "Sources/BraintreeLocalPayment/PrivacyInfo.xcprivacy" } end s.subspec "PayPal" do |s| diff --git a/Braintree.xcodeproj/project.pbxproj b/Braintree.xcodeproj/project.pbxproj index 027eaeddd1..000da2a8c8 100644 --- a/Braintree.xcodeproj/project.pbxproj +++ b/Braintree.xcodeproj/project.pbxproj @@ -16,6 +16,7 @@ 3B1C529429D5EB4E00B68A58 /* BTVenmoAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B1C529329D5EB4E00B68A58 /* BTVenmoAnalytics.swift */; }; 3B1C529729D638D400B68A58 /* BTVenmoAnalytics_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B1C529529D637F400B68A58 /* BTVenmoAnalytics_Tests.swift */; }; 3B57E9EA29ECC1AF00245174 /* BTLocalPaymentAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B57E9E929ECC1AF00245174 /* BTLocalPaymentAnalytics.swift */; }; + 3B5A41E92BA2375600921922 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 3B5A41E82BA2375600921922 /* PrivacyInfo.xcprivacy */; }; 3B7A261129C0CAA40087059D /* BTPayPalAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B7A261029C0CAA40087059D /* BTPayPalAnalytics.swift */; }; 3B7A261429C35BD00087059D /* BTPayPalAnalytics_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B7A261229C35B670087059D /* BTPayPalAnalytics_Tests.swift */; }; 3BC0E09229E4673C009217D6 /* BTSEPADirectAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BC0E09129E4673C009217D6 /* BTSEPADirectAnalytics.swift */; }; @@ -634,6 +635,7 @@ 3B1C529329D5EB4E00B68A58 /* BTVenmoAnalytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTVenmoAnalytics.swift; sourceTree = ""; }; 3B1C529529D637F400B68A58 /* BTVenmoAnalytics_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTVenmoAnalytics_Tests.swift; sourceTree = ""; }; 3B57E9E929ECC1AF00245174 /* BTLocalPaymentAnalytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTLocalPaymentAnalytics.swift; sourceTree = ""; }; + 3B5A41E82BA2375600921922 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 3B7A261029C0CAA40087059D /* BTPayPalAnalytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTPayPalAnalytics.swift; sourceTree = ""; }; 3B7A261229C35B670087059D /* BTPayPalAnalytics_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTPayPalAnalytics_Tests.swift; sourceTree = ""; }; 3BC0E09129E4673C009217D6 /* BTSEPADirectAnalytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTSEPADirectAnalytics.swift; sourceTree = ""; }; @@ -1174,6 +1176,7 @@ 80BA64B129D7937E00E15264 /* BTLocalPaymentRequest.swift */, 80BA64B329D795D000E15264 /* BTLocalPaymentRequestDelegate.swift */, 80BA64AB29D788E000E15264 /* BTLocalPaymentResult.swift */, + 3B5A41E82BA2375600921922 /* PrivacyInfo.xcprivacy */, ); path = BraintreeLocalPayment; sourceTree = ""; @@ -2478,6 +2481,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 3B5A41E92BA2375600921922 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Package.swift b/Package.swift index 53df812ff7..3abe0f6d82 100644 --- a/Package.swift +++ b/Package.swift @@ -82,7 +82,8 @@ let package = Package( ), .target( name: "BraintreeLocalPayment", - dependencies: ["BraintreeCore", "BraintreeDataCollector"] + dependencies: ["BraintreeCore", "BraintreeDataCollector"], + resources: [.copy("PrivacyInfo.xcprivacy")] ), .target( name: "BraintreePayPal", diff --git a/Sources/BraintreeLocalPayment/PrivacyInfo.xcprivacy b/Sources/BraintreeLocalPayment/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..f16b161ef2 --- /dev/null +++ b/Sources/BraintreeLocalPayment/PrivacyInfo.xcprivacy @@ -0,0 +1,57 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePaymentInfo + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeName + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypeEmailAddress + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + NSPrivacyCollectedDataType + NSPrivacyCollectedDataTypePhoneNumber + NSPrivacyCollectedDataTypeLinked + + NSPrivacyCollectedDataTypeTracking + + NSPrivacyCollectedDataTypePurposes + + NSPrivacyCollectedDataTypePurposeAppFunctionality + + + + + From 6d3107babda72dd6217cd8f01b3f27fa83246d19 Mon Sep 17 00:00:00 2001 From: Victoria Park Date: Mon, 18 Mar 2024 09:03:09 -0700 Subject: [PATCH 12/13] Changelog for privacy manifest and feature branch merge PR --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99763f869d..352a9bc111 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Braintree iOS SDK Release Notes +## 6.15.0 (2024-03-18) +* [Meets Apple's new Privacy Update requirements](https://developer.apple.com/news/?id=3d8a9yyh) + ## 6.14.0 (2024-03-13) * BraintreeDataCollector * Bump to PPRiskMagnes v5.5.0 with code signing & a privacy manifest file From c5604acb88ab23f9ff537e5cbc54b4ac565a4bd6 Mon Sep 17 00:00:00 2001 From: Victoria Park Date: Mon, 18 Mar 2024 09:30:47 -0700 Subject: [PATCH 13/13] changelog to unreleased for pipeline --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 352a9bc111..8ff21df2e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Braintree iOS SDK Release Notes -## 6.15.0 (2024-03-18) +## unreleased * [Meets Apple's new Privacy Update requirements](https://developer.apple.com/news/?id=3d8a9yyh) ## 6.14.0 (2024-03-13)