diff --git a/Configuration/App/DBP/DuckDuckGoDBPAgentAppStore.xcconfig b/Configuration/App/DBP/DuckDuckGoDBPAgentAppStore.xcconfig index e9a31677df..9906888d21 100644 --- a/Configuration/App/DBP/DuckDuckGoDBPAgentAppStore.xcconfig +++ b/Configuration/App/DBP/DuckDuckGoDBPAgentAppStore.xcconfig @@ -22,7 +22,7 @@ PRODUCT_BUNDLE_IDENTIFIER[config=Debug][sdk=*] = $(DBP_BACKGROUND_AGENT_BUNDLE_I PRODUCT_BUNDLE_IDENTIFIER[config=CI][sdk=*] = $(DBP_BACKGROUND_AGENT_BUNDLE_ID) PRODUCT_BUNDLE_IDENTIFIER[config=Review][sdk=*] = $(DBP_BACKGROUND_AGENT_BUNDLE_ID) -INFOPLIST_FILE = DuckDuckGoDBPBackgroundAgent/Info.plist +INFOPLIST_FILE = DuckDuckGoDBPBackgroundAgent/Info-AppStore.plist GENERATE_INFOPLIST_FILE = YES INFOPLIST_KEY_LSUIElement = YES INFOPLIST_KEY_NSPrincipalClass = Application @@ -31,20 +31,20 @@ INFOPLIST_KEY_NSPrincipalClass = Application //CODE_SIGN_STYLE[config=Debug][sdk=*] = Manual //CODE_SIGN_STYLE[config=Release][sdk=*] = Manual -CODE_SIGN_ENTITLEMENTS[config=Review][sdk=macosx*] = DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgent.entitlements -CODE_SIGN_ENTITLEMENTS[config=CI][sdk=macosx*] = DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgent.entitlements -CODE_SIGN_ENTITLEMENTS[config=Debug][sdk=macosx*] = DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgent.entitlements -CODE_SIGN_ENTITLEMENTS[config=Release][sdk=macosx*] = DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgent.entitlements +CODE_SIGN_ENTITLEMENTS[config=Review][sdk=macosx*] = DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgentAppStore.entitlements +CODE_SIGN_ENTITLEMENTS[config=CI][sdk=macosx*] = DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgentAppStore.entitlements +CODE_SIGN_ENTITLEMENTS[config=Debug][sdk=macosx*] = DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgentAppStore.entitlements +CODE_SIGN_ENTITLEMENTS[config=Release][sdk=macosx*] = DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgentAppStore.entitlements -CODE_SIGN_IDENTITY[sdk=macosx*] = Developer ID Application +CODE_SIGN_IDENTITY[sdk=macosx*] = 3rd Party Mac Developer Application CODE_SIGN_IDENTITY[config=Debug][sdk=macosx*] = Apple Development CODE_SIGN_IDENTITY[config=CI][sdk=macosx*] = PRODUCT_NAME = $(DBP_BACKGROUND_AGENT_PRODUCT_NAME) PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*] = -PROVISIONING_PROFILE_SPECIFIER[config=Review][sdk=macosx*] = macOS DBP Agent - Review -PROVISIONING_PROFILE_SPECIFIER[config=Release][sdk=macosx*] = macOS DBP Agent - Release +PROVISIONING_PROFILE_SPECIFIER[config=Review][sdk=macosx*] = match AppStore com.duckduckgo.mobile.ios.DBP.backgroundAgent.review macos +PROVISIONING_PROFILE_SPECIFIER[config=Release][sdk=macosx*] = match AppStore com.duckduckgo.mobile.ios.DBP.backgroundAgent macos FEATURE_FLAGS = FEEDBACK DBP NETWORK_PROTECTION diff --git a/Configuration/AppStore.xcconfig b/Configuration/AppStore.xcconfig index 27f5e87725..99b9a66714 100644 --- a/Configuration/AppStore.xcconfig +++ b/Configuration/AppStore.xcconfig @@ -31,9 +31,9 @@ GCC_PREPROCESSOR_DEFINITIONS[config=Review][arch=*][sdk=*] = APPSTORE=1 REVIEW=1 MACOSX_DEPLOYMENT_TARGET = 12.3 SWIFT_ACTIVE_COMPILATION_CONDITIONS[arch=*][sdk=*] = APPSTORE $(FEATURE_FLAGS) -SWIFT_ACTIVE_COMPILATION_CONDITIONS[config=CI][arch=*][sdk=*] = APPSTORE DEBUG NETWORK_PROTECTION CI $(FEATURE_FLAGS) -SWIFT_ACTIVE_COMPILATION_CONDITIONS[config=Debug][arch=*][sdk=*] = APPSTORE DEBUG NETWORK_PROTECTION $(FEATURE_FLAGS) -SWIFT_ACTIVE_COMPILATION_CONDITIONS[config=Review][arch=*][sdk=*] = APPSTORE REVIEW NETWORK_PROTECTION $(FEATURE_FLAGS) +SWIFT_ACTIVE_COMPILATION_CONDITIONS[config=CI][arch=*][sdk=*] = APPSTORE DEBUG NETWORK_PROTECTION DBP CI $(FEATURE_FLAGS) +SWIFT_ACTIVE_COMPILATION_CONDITIONS[config=Debug][arch=*][sdk=*] = APPSTORE DEBUG NETWORK_PROTECTION DBP $(FEATURE_FLAGS) +SWIFT_ACTIVE_COMPILATION_CONDITIONS[config=Review][arch=*][sdk=*] = APPSTORE REVIEW NETWORK_PROTECTION DBP $(FEATURE_FLAGS) NETP_BASE_APP_GROUP = $(DEVELOPMENT_TEAM).com.duckduckgo.macos.browser.network-protection NETP_APP_GROUP[config=CI][sdk=macos*] = $(NETP_BASE_APP_GROUP).debug @@ -69,3 +69,19 @@ DISTRIBUTED_NOTIFICATIONS_PREFIX[config=CI][sdk=*] = $(DISTRIBUTED_NOTIFICATIONS DISTRIBUTED_NOTIFICATIONS_PREFIX[config=Review][sdk=*] = $(DISTRIBUTED_NOTIFICATIONS_PREFIX_BASE).review DISTRIBUTED_NOTIFICATIONS_PREFIX[config=Debug][sdk=*] = $(DISTRIBUTED_NOTIFICATIONS_PREFIX_BASE).debug DISTRIBUTED_NOTIFICATIONS_PREFIX[config=Release][sdk=*] = $(DISTRIBUTED_NOTIFICATIONS_PREFIX_BASE) + +// DBP + +DBP_BACKGROUND_AGENT_PRODUCT_NAME = DuckDuckGo Personal Information Removal App Store + +DBP_BACKGROUND_AGENT_BUNDLE_ID_BASE[sdk=*] = com.duckduckgo.mobile.ios.DBP.backgroundAgent +DBP_BACKGROUND_AGENT_BUNDLE_ID[sdk=*] = $(DBP_BACKGROUND_AGENT_BUNDLE_ID_BASE) +DBP_BACKGROUND_AGENT_BUNDLE_ID[config=Debug][sdk=*] = $(DBP_BACKGROUND_AGENT_BUNDLE_ID_BASE).debug +DBP_BACKGROUND_AGENT_BUNDLE_ID[config=CI][sdk=*] = $(DBP_BACKGROUND_AGENT_BUNDLE_ID_BASE).debug +DBP_BACKGROUND_AGENT_BUNDLE_ID[config=Review][sdk=*] = $(DBP_BACKGROUND_AGENT_BUNDLE_ID_BASE).review + +DBP_BASE_APP_GROUP = $(DEVELOPMENT_TEAM).com.duckduckgo.macos.browser.appstore.dbp +DBP_APP_GROUP[config=CI][sdk=*] = $(DBP_BASE_APP_GROUP).debug +DBP_APP_GROUP[config=Review][sdk=*] = $(DBP_BASE_APP_GROUP).review +DBP_APP_GROUP[config=Debug][sdk=*] = $(DBP_BASE_APP_GROUP).debug +DBP_APP_GROUP[config=Release][sdk=*] = $(DBP_BASE_APP_GROUP) diff --git a/Configuration/DeveloperID.xcconfig b/Configuration/DeveloperID.xcconfig index ec99e58e5f..0bfb9bb8cb 100644 --- a/Configuration/DeveloperID.xcconfig +++ b/Configuration/DeveloperID.xcconfig @@ -59,21 +59,24 @@ NOTIFICATIONS_AGENT_PRODUCT_NAME = DuckDuckGo Notifications AGENT_BUNDLE_ID_BASE[sdk=*] = com.duckduckgo.macos.vpn -DBP_BASE_APP_GROUP = $(DEVELOPMENT_TEAM).com.duckduckgo.macos.browser.dbp -DBP_APP_GROUP[config=CI][sdk=*] = $(DBP_BASE_APP_GROUP).debug -DBP_APP_GROUP[config=Review][sdk=*] = $(DBP_BASE_APP_GROUP).review -DBP_APP_GROUP[config=Debug][sdk=*] = $(DBP_BASE_APP_GROUP).debug -DBP_APP_GROUP[config=Release][sdk=*] = $(DBP_BASE_APP_GROUP) - AGENT_BUNDLE_ID[sdk=*] = $(AGENT_BUNDLE_ID_BASE) AGENT_BUNDLE_ID[config=Debug][sdk=*] = $(AGENT_BUNDLE_ID_BASE).debug AGENT_BUNDLE_ID[config=CI][sdk=*] = $(AGENT_BUNDLE_ID_BASE).debug AGENT_BUNDLE_ID[config=Review][sdk=*] = $(AGENT_BUNDLE_ID_BASE).review AGENT_PRODUCT_NAME = DuckDuckGo VPN -DBP_BACKGROUND_AGENT_BUNDLE_ID[sdk=*] = com.duckduckgo.macos.DBP.backgroundAgent -DBP_BACKGROUND_AGENT_BUNDLE_ID[config=Debug][sdk=*] = $(DBP_BACKGROUND_AGENT_BUNDLE_ID).debug -DBP_BACKGROUND_AGENT_BUNDLE_ID[config=CI][sdk=*] = $(DBP_BACKGROUND_AGENT_BUNDLE_ID).debug -DBP_BACKGROUND_AGENT_BUNDLE_ID[config=Review][sdk=*] = $(DBP_BACKGROUND_AGENT_BUNDLE_ID).review +// DBP DBP_BACKGROUND_AGENT_PRODUCT_NAME = DuckDuckGo Personal Information Removal + +DBP_BACKGROUND_AGENT_BUNDLE_ID_BASE[sdk=*] = com.duckduckgo.macos.DBP.backgroundAgent +DBP_BACKGROUND_AGENT_BUNDLE_ID[sdk=*] = $(DBP_BACKGROUND_AGENT_BUNDLE_ID_BASE) +DBP_BACKGROUND_AGENT_BUNDLE_ID[config=Debug][sdk=*] = $(DBP_BACKGROUND_AGENT_BUNDLE_ID_BASE).debug +DBP_BACKGROUND_AGENT_BUNDLE_ID[config=CI][sdk=*] = $(DBP_BACKGROUND_AGENT_BUNDLE_ID_BASE).debug +DBP_BACKGROUND_AGENT_BUNDLE_ID[config=Review][sdk=*] = $(DBP_BACKGROUND_AGENT_BUNDLE_ID_BASE).review + +DBP_BASE_APP_GROUP = $(DEVELOPMENT_TEAM).com.duckduckgo.macos.browser.dbp +DBP_APP_GROUP[config=CI][sdk=*] = $(DBP_BASE_APP_GROUP).debug +DBP_APP_GROUP[config=Review][sdk=*] = $(DBP_BASE_APP_GROUP).review +DBP_APP_GROUP[config=Debug][sdk=*] = $(DBP_BASE_APP_GROUP).debug +DBP_APP_GROUP[config=Release][sdk=*] = $(DBP_BASE_APP_GROUP) diff --git a/Configuration/Tests/IntegrationTests.xcconfig b/Configuration/Tests/IntegrationTests.xcconfig index 9816d83936..6100fbe474 100644 --- a/Configuration/Tests/IntegrationTests.xcconfig +++ b/Configuration/Tests/IntegrationTests.xcconfig @@ -17,7 +17,7 @@ MACOSX_DEPLOYMENT_TARGET = 11.4 -FEATURE_FLAGS = FEEDBACK NETWORK_PROTECTION +FEATURE_FLAGS = FEEDBACK NETWORK_PROTECTION DBP INFOPLIST_FILE = IntegrationTests/Info.plist PRODUCT_BUNDLE_IDENTIFIER = com.duckduckgo.Integration-Tests diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index 8b773be756..31af423bc6 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -91,6 +91,11 @@ 1E950E432912A10D0051A99B /* UserScript in Frameworks */ = {isa = PBXBuildFile; productRef = 1E950E422912A10D0051A99B /* UserScript */; }; 310E79BF294A19A8007C49E8 /* FireproofingReferenceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 310E79BE294A19A8007C49E8 /* FireproofingReferenceTests.swift */; }; 311B262728E73E0A00FD181A /* TabShadowConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 311B262628E73E0A00FD181A /* TabShadowConfig.swift */; }; + 31267C692B640C4200FEF811 /* DataBrokerProtectionFeatureVisibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31C5FFB82AF64D120008A79F /* DataBrokerProtectionFeatureVisibility.swift */; }; + 31267C6A2B640C4B00FEF811 /* DataBrokerProtectionFeatureDisabler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3199C6F82AF94F5B002A7BA1 /* DataBrokerProtectionFeatureDisabler.swift */; }; + 31267C6B2B640C5200FEF811 /* DataBrokerProtectionAppEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3199C6FC2AF97367002A7BA1 /* DataBrokerProtectionAppEvents.swift */; }; + 31267C6C2B640DE100FEF811 /* DuckDuckGo Personal Information Removal App Store.app in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D9AE8F22AAA39D30026E7DC /* DuckDuckGo Personal Information Removal App Store.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 3129788A2B64131200B67619 /* DataBrokerProtection in Frameworks */ = {isa = PBXBuildFile; productRef = 312978892B64131200B67619 /* DataBrokerProtection */; }; 3143C8792B0D1F3D00382627 /* DataBrokerProtection in Frameworks */ = {isa = PBXBuildFile; productRef = 3143C8782B0D1F3D00382627 /* DataBrokerProtection */; }; 3154FD1428E6011A00909769 /* TabShadowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3154FD1328E6011A00909769 /* TabShadowView.swift */; }; 3158B1472B0BF72E00AF130C /* DBPHomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3192EC872A4DCF21001E97A5 /* DBPHomeViewController.swift */; }; @@ -109,6 +114,8 @@ 3158B15B2B0BF76700AF130C /* DataBrokerProtectionFeatureDisabler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3199C6F82AF94F5B002A7BA1 /* DataBrokerProtectionFeatureDisabler.swift */; }; 3158B15C2B0BF76D00AF130C /* DataBrokerProtectionAppEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3199C6FC2AF97367002A7BA1 /* DataBrokerProtectionAppEvents.swift */; }; 3158B15E2B0BF76F00AF130C /* DataBrokerProtectionAppEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3199C6FC2AF97367002A7BA1 /* DataBrokerProtectionAppEvents.swift */; }; + 315A023D2B64216B00BFA577 /* IPCServiceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BD01C182AD8319C0088B32E /* IPCServiceManager.swift */; }; + 315A023F2B6421AE00BFA577 /* Networking in Frameworks */ = {isa = PBXBuildFile; productRef = 315A023E2B6421AE00BFA577 /* Networking */; }; 315AA07028CA5CC800200030 /* YoutubePlayerNavigationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 315AA06F28CA5CC800200030 /* YoutubePlayerNavigationHandler.swift */; }; 3168506D2AF3AD1D009A2828 /* WaitlistViewControllerPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3168506C2AF3AD1C009A2828 /* WaitlistViewControllerPresenter.swift */; }; 3168506E2AF3AD1D009A2828 /* WaitlistViewControllerPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3168506C2AF3AD1C009A2828 /* WaitlistViewControllerPresenter.swift */; }; @@ -133,6 +140,11 @@ 31E163BA293A56F400963C10 /* BrokenSiteReportingReferenceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31E163B9293A56F400963C10 /* BrokenSiteReportingReferenceTests.swift */; }; 31E163BD293A579E00963C10 /* PrivacyReferenceTestHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31E163BC293A579E00963C10 /* PrivacyReferenceTestHelper.swift */; }; 31E163C0293A581900963C10 /* privacy-reference-tests in Resources */ = {isa = PBXBuildFile; fileRef = 31E163BF293A581900963C10 /* privacy-reference-tests */; }; + 31EF1E802B63FFA800E6DB17 /* DBPHomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3192EC872A4DCF21001E97A5 /* DBPHomeViewController.swift */; }; + 31EF1E812B63FFB800E6DB17 /* DataBrokerProtectionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3139A1512AA4B3C000969C7D /* DataBrokerProtectionManager.swift */; }; + 31EF1E822B63FFC200E6DB17 /* DataBrokerProtectionLoginItemScheduler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B6D98662ADEB4B000CD35FE /* DataBrokerProtectionLoginItemScheduler.swift */; }; + 31EF1E832B63FFCA00E6DB17 /* LoginItem+DataBrokerProtection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8FA00B2AC5BDCE005DD0D0 /* LoginItem+DataBrokerProtection.swift */; }; + 31EF1E842B63FFD100E6DB17 /* DataBrokerProtectionDebugMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 316850712AF3AD58009A2828 /* DataBrokerProtectionDebugMenu.swift */; }; 31F28C4F28C8EEC500119F70 /* YoutubePlayerUserScript.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31F28C4C28C8EEC500119F70 /* YoutubePlayerUserScript.swift */; }; 31F28C5128C8EEC500119F70 /* YoutubeOverlayUserScript.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31F28C4E28C8EEC500119F70 /* YoutubeOverlayUserScript.swift */; }; 31F28C5328C8EECA00119F70 /* DuckURLSchemeHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31F28C5228C8EECA00119F70 /* DuckURLSchemeHandler.swift */; }; @@ -2375,7 +2387,6 @@ 9D9AE92A2AAA43EB0026E7DC /* DataBrokerProtectionBackgroundManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D9AE9282AAA43EB0026E7DC /* DataBrokerProtectionBackgroundManager.swift */; }; 9D9AE92C2AAB84FF0026E7DC /* DBPMocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D9AE92B2AAB84FF0026E7DC /* DBPMocks.swift */; }; 9D9AE92D2AAB84FF0026E7DC /* DBPMocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D9AE92B2AAB84FF0026E7DC /* DBPMocks.swift */; }; - 9D9AE9312AAB8A9E0026E7DC /* BrowserServicesKit in Frameworks */ = {isa = PBXBuildFile; productRef = 9D9AE9302AAB8A9E0026E7DC /* BrowserServicesKit */; }; 9DB6E7242AA0DC5800A17F3C /* LoginItems in Frameworks */ = {isa = PBXBuildFile; productRef = 9DB6E7232AA0DC5800A17F3C /* LoginItems */; }; 9DC70B1A2AA1FA5B005A844B /* LoginItems in Frameworks */ = {isa = PBXBuildFile; productRef = 9DC70B192AA1FA5B005A844B /* LoginItems */; }; 9DEF97E12B06C4EE00764F03 /* Networking in Frameworks */ = {isa = PBXBuildFile; productRef = 9DEF97E02B06C4EE00764F03 /* Networking */; }; @@ -3217,6 +3228,7 @@ dstPath = Contents/Library/LoginItems; dstSubfolderSpec = 1; files = ( + 31267C6C2B640DE100FEF811 /* DuckDuckGo Personal Information Removal App Store.app in CopyFiles */, 4BF97AE02B43C8FE00EB4240 /* DuckDuckGo VPN App Store.app in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; @@ -3882,7 +3894,7 @@ 9D9AE8682AA76CDC0026E7DC /* LoginItem+NetworkProtection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "LoginItem+NetworkProtection.swift"; sourceTree = ""; }; 9D9AE86A2AA76CF90026E7DC /* LoginItemsManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginItemsManager.swift; sourceTree = ""; }; 9D9AE8D12AAA39A70026E7DC /* DuckDuckGo Personal Information Removal.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DuckDuckGo Personal Information Removal.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9D9AE8F22AAA39D30026E7DC /* .app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = .app; sourceTree = BUILT_PRODUCTS_DIR; }; + 9D9AE8F22AAA39D30026E7DC /* DuckDuckGo Personal Information Removal App Store.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DuckDuckGo Personal Information Removal App Store.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 9D9AE9142AAA3B450026E7DC /* Info-AppStore.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-AppStore.plist"; sourceTree = ""; }; 9D9AE9152AAA3B450026E7DC /* DuckDuckGoDBPBackgroundAgentAppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DuckDuckGoDBPBackgroundAgentAppDelegate.swift; sourceTree = ""; }; 9D9AE9162AAA3B450026E7DC /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; @@ -4408,6 +4420,7 @@ 37269EFD2B332FAC005E8E46 /* Common in Frameworks */, 378F44E629B4BDEE00899924 /* SwiftUIExtensions in Frameworks */, 3706FCA7293F65D500E42796 /* BrowserServicesKit in Frameworks */, + 3129788A2B64131200B67619 /* DataBrokerProtection in Frameworks */, 3706FCA9293F65D500E42796 /* ContentBlocking in Frameworks */, 4BF97AD12B43C43F00EB4240 /* NetworkProtectionIPC in Frameworks */, 37F44A5F298C17830025E7FE /* Navigation in Frameworks */, @@ -4585,7 +4598,7 @@ buildActionMask = 2147483647; files = ( 9D6983FB2AC773C8002C02FC /* PixelKit in Frameworks */, - 9D9AE9312AAB8A9E0026E7DC /* BrowserServicesKit in Frameworks */, + 315A023F2B6421AE00BFA577 /* Networking in Frameworks */, 9D9AE8FB2AAA3AD90026E7DC /* DataBrokerProtection in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -6611,7 +6624,7 @@ 4B2D06392A11CFBB00DE1F49 /* DuckDuckGo VPN.app */, 4B2D06692A13318400DE1F49 /* DuckDuckGo VPN App Store.app */, 9D9AE8D12AAA39A70026E7DC /* DuckDuckGo Personal Information Removal.app */, - 9D9AE8F22AAA39D30026E7DC /* .app */, + 9D9AE8F22AAA39D30026E7DC /* DuckDuckGo Personal Information Removal App Store.app */, 4B957C412AC7AE700062CA31 /* DuckDuckGo Privacy Pro.app */, 565E46DD2B2725DC0013AC2A /* SyncE2EUITests.xctest */, 376113D42B29CD5B00E794BB /* SyncE2EUITests App Store.xctest */, @@ -8199,6 +8212,7 @@ 4BF97AD22B43C43F00EB4240 /* NetworkProtectionUI */, 4BF97AD42B43C43F00EB4240 /* NetworkProtection */, 373FB4B22B4D6C4B004C88D6 /* PreferencesViews */, + 312978892B64131200B67619 /* DataBrokerProtection */, ); productName = DuckDuckGo; productReference = 3706FD05293F65D500E42796 /* DuckDuckGo App Store.app */; @@ -8546,6 +8560,7 @@ 9D9AE8D72AAA39D30026E7DC /* Sources */, 9D9AE8E72AAA39D30026E7DC /* Frameworks */, 9D9AE8EA2AAA39D30026E7DC /* Resources */, + 3121F62B2B64266A002F706A /* Copy Swift Package resources */, ); buildRules = ( ); @@ -8555,11 +8570,11 @@ name = DuckDuckGoDBPBackgroundAgentAppStore; packageProductDependencies = ( 9D9AE8FA2AAA3AD90026E7DC /* DataBrokerProtection */, - 9D9AE9302AAB8A9E0026E7DC /* BrowserServicesKit */, 9D6983FA2AC773C8002C02FC /* PixelKit */, + 315A023E2B6421AE00BFA577 /* Networking */, ); productName = DuckDuckGoAgent; - productReference = 9D9AE8F22AAA39D30026E7DC /* .app */; + productReference = 9D9AE8F22AAA39D30026E7DC /* DuckDuckGo Personal Information Removal App Store.app */; productType = "com.apple.product-type.application"; }; AA585D7D248FD31100E9A3E2 /* DuckDuckGo Privacy Browser */ = { @@ -9082,6 +9097,24 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 3121F62B2B64266A002F706A /* Copy Swift Package resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Copy Swift Package resources"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n# We had issues where the Swift Package resources were not being added to the Agent Apps,\n# so we're manually coping them here.\n# It seems to be a known issue: https://forums.swift.org/t/swift-packages-resource-bundle-not-present-in-xcarchive-when-framework-using-said-package-is-archived/50084/2\ncp -RL \"${BUILT_PRODUCTS_DIR}\"/ContentScopeScripts_ContentScopeScripts.bundle \"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\ncp -RL \"${BUILT_PRODUCTS_DIR}\"/DataBrokerProtection_DataBrokerProtection.bundle \"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\n"; + }; 3705272528992C8A000C06A2 /* Check Embedded Config URLs */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -9579,6 +9612,7 @@ 3706FB2D293F65D500E42796 /* PasswordManagementPopover.swift in Sources */, 3706FB2F293F65D500E42796 /* HomePageRecentlyVisitedModel.swift in Sources */, 3707C718294B5D0F00682A9F /* AdClickAttributionTabExtension.swift in Sources */, + 31EF1E812B63FFB800E6DB17 /* DataBrokerProtectionManager.swift in Sources */, 3706FEBA293F6EFF00E42796 /* BWStatus.swift in Sources */, 3706FB30293F65D500E42796 /* NavigationBarPopovers.swift in Sources */, 3706FB31293F65D500E42796 /* PinnedTabsHostingView.swift in Sources */, @@ -9615,6 +9649,7 @@ 3706FB4C293F65D500E42796 /* SharingMenu.swift in Sources */, 3706FB4D293F65D500E42796 /* GrammarFeaturesManager.swift in Sources */, 3706FB50293F65D500E42796 /* SafariFaviconsReader.swift in Sources */, + 31267C692B640C4200FEF811 /* DataBrokerProtectionFeatureVisibility.swift in Sources */, 3706FB51293F65D500E42796 /* NSScreenExtension.swift in Sources */, EEC4A66A2B2C87D300F7C0AA /* VPNLocationView.swift in Sources */, 3706FB52293F65D500E42796 /* NSBezierPathExtension.swift in Sources */, @@ -9748,6 +9783,7 @@ 3706FBA5293F65D500E42796 /* TabShadowView.swift in Sources */, 3706FBA7293F65D500E42796 /* EncryptedValueTransformer.swift in Sources */, 4B41EDAF2B168AFF001EEDF4 /* VPNFeedbackFormViewController.swift in Sources */, + 31EF1E802B63FFA800E6DB17 /* DBPHomeViewController.swift in Sources */, 3706FBA8293F65D500E42796 /* PasteboardBookmark.swift in Sources */, 3706FBA9293F65D500E42796 /* PinnedTabsManager.swift in Sources */, B66260E829ACD0C900E9E3EE /* DuckPlayerTabExtension.swift in Sources */, @@ -9827,6 +9863,7 @@ 3706FBE2293F65D500E42796 /* ClickToLoadUserScript.swift in Sources */, 3706FBE3293F65D500E42796 /* WindowControllersManager.swift in Sources */, 37197EAA2942443D00394917 /* ModalSheetCancellable.swift in Sources */, + 31267C6B2B640C5200FEF811 /* DataBrokerProtectionAppEvents.swift in Sources */, 3706FBE4293F65D500E42796 /* FireAnimationView.swift in Sources */, 3706FBE5293F65D500E42796 /* FaviconUrlReference.swift in Sources */, 3706FBE7293F65D500E42796 /* PasswordManagementItemListModel.swift in Sources */, @@ -9874,6 +9911,7 @@ 3706FC06293F65D500E42796 /* OnboardingViewModel.swift in Sources */, 3706FC07293F65D500E42796 /* ScriptSourceProviding.swift in Sources */, 4B6785402AA7C726008A5004 /* DailyPixel.swift in Sources */, + 31EF1E832B63FFCA00E6DB17 /* LoginItem+DataBrokerProtection.swift in Sources */, B6619EFC2B111CC600CD9186 /* InstructionsFormatParser.swift in Sources */, 3706FC08293F65D500E42796 /* CoreDataBookmarkImporter.swift in Sources */, 3706FC09293F65D500E42796 /* SuggestionViewModel.swift in Sources */, @@ -9933,6 +9971,7 @@ 3706FC32293F65D500E42796 /* MoreOptionsMenu.swift in Sources */, 3706FC34293F65D500E42796 /* PermissionAuthorizationViewController.swift in Sources */, 3706FC35293F65D500E42796 /* BookmarkNode.swift in Sources */, + 31EF1E822B63FFC200E6DB17 /* DataBrokerProtectionLoginItemScheduler.swift in Sources */, B6B140892ABDBCC1004F8E85 /* HoverTrackingArea.swift in Sources */, 3706FC36293F65D500E42796 /* LongPressButton.swift in Sources */, 3706FC37293F65D500E42796 /* CoreDataStore.swift in Sources */, @@ -9960,6 +9999,7 @@ 3706FC4A293F65D500E42796 /* LocalStatisticsStore.swift in Sources */, 3706FC4B293F65D500E42796 /* BackForwardListItem.swift in Sources */, 4B4D60DD2A0C875E00BCD287 /* NetworkProtectionOptionKeyExtension.swift in Sources */, + 31267C6A2B640C4B00FEF811 /* DataBrokerProtectionFeatureDisabler.swift in Sources */, 3707C723294B5D2900682A9F /* URLSessionExtension.swift in Sources */, 3706FC4E293F65D500E42796 /* AtbAndVariantCleanup.swift in Sources */, 3706FC4F293F65D500E42796 /* NibLoadable.swift in Sources */, @@ -9979,6 +10019,7 @@ 7BEC20432B0F505F00243D3E /* AddBookmarkPopoverView.swift in Sources */, 3706FC5B293F65D500E42796 /* NSOutlineViewExtensions.swift in Sources */, 3706FC5C293F65D500E42796 /* AppDelegate.swift in Sources */, + 31EF1E842B63FFD100E6DB17 /* DataBrokerProtectionDebugMenu.swift in Sources */, 3706FC5D293F65D500E42796 /* ContentOverlayViewController.swift in Sources */, 3706FC5E293F65D500E42796 /* OnboardingViewController.swift in Sources */, 7BE146082A6A83C700C313B8 /* NetworkProtectionDebugMenu.swift in Sources */, @@ -11266,6 +11307,7 @@ 9D9AE92A2AAA43EB0026E7DC /* DataBrokerProtectionBackgroundManager.swift in Sources */, 9D9AE91E2AAA3B450026E7DC /* DuckDuckGoDBPBackgroundAgentAppDelegate.swift in Sources */, 9D9AE9222AAA3B450026E7DC /* UserText.swift in Sources */, + 315A023D2B64216B00BFA577 /* IPCServiceManager.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -13293,10 +13335,19 @@ package = 9807F643278CA16F00E1547B /* XCRemoteSwiftPackageReference "BrowserServicesKit" */; productName = UserScript; }; + 312978892B64131200B67619 /* DataBrokerProtection */ = { + isa = XCSwiftPackageProductDependency; + productName = DataBrokerProtection; + }; 3143C8782B0D1F3D00382627 /* DataBrokerProtection */ = { isa = XCSwiftPackageProductDependency; productName = DataBrokerProtection; }; + 315A023E2B6421AE00BFA577 /* Networking */ = { + isa = XCSwiftPackageProductDependency; + package = 9807F643278CA16F00E1547B /* XCRemoteSwiftPackageReference "BrowserServicesKit" */; + productName = Networking; + }; 31A3A4E22B0C115F0021063C /* DataBrokerProtection */ = { isa = XCSwiftPackageProductDependency; productName = DataBrokerProtection; @@ -13709,11 +13760,6 @@ isa = XCSwiftPackageProductDependency; productName = DataBrokerProtection; }; - 9D9AE9302AAB8A9E0026E7DC /* BrowserServicesKit */ = { - isa = XCSwiftPackageProductDependency; - package = 9807F643278CA16F00E1547B /* XCRemoteSwiftPackageReference "BrowserServicesKit" */; - productName = BrowserServicesKit; - }; 9DB6E7232AA0DC5800A17F3C /* LoginItems */ = { isa = XCSwiftPackageProductDependency; productName = LoginItems; diff --git a/DuckDuckGo/DuckDuckGoAppStore.entitlements b/DuckDuckGo/DuckDuckGoAppStore.entitlements index 123f442d19..e419bc0920 100644 --- a/DuckDuckGo/DuckDuckGoAppStore.entitlements +++ b/DuckDuckGo/DuckDuckGoAppStore.entitlements @@ -6,6 +6,7 @@ com.apple.security.application-groups + $(DBP_APP_GROUP) $(NETP_APP_GROUP) com.apple.security.device.audio-input @@ -41,10 +42,12 @@ com.apple.security.temporary-exception.mach-lookup.global-name + $(DBP_BACKGROUND_AGENT_BUNDLE_ID) $(AGENT_BUNDLE_ID) keychain-access-groups + $(DBP_APP_GROUP) $(AppIdentifierPrefix)com.duckduckgo.mobile.ios $(NETP_APP_GROUP) diff --git a/DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgent.entitlements b/DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgent.entitlements index 113209622e..d479a64a3a 100644 --- a/DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgent.entitlements +++ b/DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgent.entitlements @@ -2,13 +2,14 @@ - com.apple.security.application-groups - - $(NETP_APP_GROUP) - - keychain-access-groups - - $(DBP_APP_GROUP) - + com.apple.security.application-groups + + $(DBP_APP_GROUP) + $(NETP_APP_GROUP) + + keychain-access-groups + + $(DBP_APP_GROUP) + diff --git a/DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgentAppStore.entitlements b/DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgentAppStore.entitlements index b2fd453927..352df997f2 100644 --- a/DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgentAppStore.entitlements +++ b/DuckDuckGoDBPBackgroundAgent/DuckDuckGoDBPBackgroundAgentAppStore.entitlements @@ -2,20 +2,18 @@ - com.apple.security.network.server - - com.apple.security.network.client - - com.apple.security.app-sandbox - - keychain-access-groups - - $(NETP_APP_GROUP) - - com.apple.security.application-groups - - $(TeamIdentifierPrefix)com.duckduckgo.macos.browser.network-protection - $(NETP_APP_GROUP) - + keychain-access-groups + + $(DBP_APP_GROUP) + + com.apple.security.application-groups + + $(DBP_APP_GROUP) + $(NETP_APP_GROUP) + + com.apple.security.network.client + + com.apple.security.app-sandbox + diff --git a/DuckDuckGoDBPBackgroundAgent/Info-AppStore.plist b/DuckDuckGoDBPBackgroundAgent/Info-AppStore.plist index 2bb1be4a67..cbd58651f6 100644 --- a/DuckDuckGoDBPBackgroundAgent/Info-AppStore.plist +++ b/DuckDuckGoDBPBackgroundAgent/Info-AppStore.plist @@ -2,9 +2,14 @@ - DBP_APP_GROUP - $(DBP_APP_GROUP) - LSApplicationCategoryType - public.app-category.productivity + DBP_APP_GROUP + $(DBP_APP_GROUP) + LSApplicationCategoryType + public.app-category.productivity + NSAppTransportSecurity + + NSAllowsArbitraryLoadsInWebContent + + diff --git a/DuckDuckGoDBPBackgroundAgent/Info.plist b/DuckDuckGoDBPBackgroundAgent/Info.plist index 031e63ff71..cbd58651f6 100644 --- a/DuckDuckGoDBPBackgroundAgent/Info.plist +++ b/DuckDuckGoDBPBackgroundAgent/Info.plist @@ -2,14 +2,14 @@ - DBP_APP_GROUP - $(DBP_APP_GROUP) - LSApplicationCategoryType - public.app-category.productivity - NSAppTransportSecurity - - NSAllowsArbitraryLoadsInWebContent - - + DBP_APP_GROUP + $(DBP_APP_GROUP) + LSApplicationCategoryType + public.app-category.productivity + NSAppTransportSecurity + + NSAllowsArbitraryLoadsInWebContent + + diff --git a/LocalPackages/BuildToolPlugins/Plugins/InputFilesChecker/InputFilesChecker.swift b/LocalPackages/BuildToolPlugins/Plugins/InputFilesChecker/InputFilesChecker.swift index 38c02a5fba..0c5d7b0e90 100644 --- a/LocalPackages/BuildToolPlugins/Plugins/InputFilesChecker/InputFilesChecker.swift +++ b/LocalPackages/BuildToolPlugins/Plugins/InputFilesChecker/InputFilesChecker.swift @@ -29,16 +29,8 @@ let nonSandboxedExtraInputFiles: Set = [ .init("DuckDuckGo Notifications.app", .unknown), .init("PFMoveApplication.m", .source), .init("NetworkProtectionSubscriptionEventHandler.swift", .source), - .init("DBPHomeViewController.swift", .source), - .init("DataBrokerProtectionManager.swift", .source), - .init("DataBrokerProtectionLoginItemScheduler.swift", .source), - .init("LoginItem+DataBrokerProtection.swift", .source), - .init("DataBrokerProtectionDebugMenu.swift", .source), - .init("DataBrokerProtectionFeatureVisibility.swift", .source), - .init("DataBrokerProtectionFeatureDisabler.swift", .source), - .init("DataBrokerProtectionAppEvents.swift", .source), - .init("DuckDuckGo Personal Information Removal.app", .unknown), - .init("DataBrokerProtectionSubscriptionEventHandler.swift", .source) + .init("DataBrokerProtectionSubscriptionEventHandler.swift", .source), + .init("DuckDuckGo Personal Information Removal.app", .unknown) ] /** @@ -56,6 +48,8 @@ let extraInputFiles: [TargetName: Set] = [ "DuckDuckGo Privacy Browser App Store": [ .init("DuckDuckGo VPN App Store.app", .unknown), + .init("DuckDuckGo Personal Information Removal App Store.app", .unknown), + ], "DuckDuckGo Privacy Pro": nonSandboxedExtraInputFiles, diff --git a/fastlane/Matchfile b/fastlane/Matchfile index 2ffade4270..8dbddfccb8 100644 --- a/fastlane/Matchfile +++ b/fastlane/Matchfile @@ -10,7 +10,10 @@ app_identifier [ "com.duckduckgo.mobile.ios.vpn.agent.network-protection-extension", "com.duckduckgo.mobile.ios.review", "com.duckduckgo.mobile.ios.vpn.agent.review", - "com.duckduckgo.mobile.ios.vpn.agent.review.network-protection-extension" + "com.duckduckgo.mobile.ios.vpn.agent.review.network-protection-extension", + "com.duckduckgo.mobile.ios.DBP.backgroundAgent.review", + "com.duckduckgo.mobile.ios.DBP.backgroundAgent" + ] additional_cert_types ["mac_installer_distribution"] generate_apple_certs false diff --git a/scripts/assets/AppStoreExportOptions.plist b/scripts/assets/AppStoreExportOptions.plist index a5f3a0cdcc..b9395f914a 100644 --- a/scripts/assets/AppStoreExportOptions.plist +++ b/scripts/assets/AppStoreExportOptions.plist @@ -20,6 +20,11 @@ match AppStore com.duckduckgo.mobile.ios.vpn.agent.review macos com.duckduckgo.mobile.ios.vpn.agent.review.network-protection-extension match AppStore com.duckduckgo.mobile.ios.vpn.agent.review.network-protection-extension macos + com.duckduckgo.mobile.ios.DBP.backgroundAgent + match AppStore com.duckduckgo.mobile.ios.DBP.backgroundAgent macos + com.duckduckgo.mobile.ios.DBP.backgroundAgent.review + match AppStore com.duckduckgo.mobile.ios.DBP.backgroundAgent.review macos +