From d4ac515235ca79d0766be3dc850c7bbdec5df0c5 Mon Sep 17 00:00:00 2001 From: Dominik Kapusta Date: Fri, 20 Oct 2023 13:47:15 +0200 Subject: [PATCH] Add suport for making release builds for NetP with updated SysEx and VPN App --- .../install-certs-and-profiles/action.yml | 18 ------------- .github/workflows/build_notarized.yml | 25 ++++++------------- .github/workflows/create_variants.yml | 11 +++----- .github/workflows/pr.yml | 11 +++----- .github/workflows/release.yml | 11 +++----- .../NetworkProtection/DuckDuckGoVPN.xcconfig | 4 +-- .../NetworkProtectionSystemExtension.xcconfig | 4 +-- DuckDuckGo.xcodeproj/project.pbxproj | 8 ------ scripts/assets/ExportOptions.plist | 16 ++++++------ 9 files changed, 32 insertions(+), 76 deletions(-) diff --git a/.github/actions/install-certs-and-profiles/action.yml b/.github/actions/install-certs-and-profiles/action.yml index a436002469..466c511d2a 100644 --- a/.github/actions/install-certs-and-profiles/action.yml +++ b/.github/actions/install-certs-and-profiles/action.yml @@ -34,15 +34,6 @@ inputs: NETP_NOTIFICATIONS_REVIEW_PROVISION_PROFILE_BASE64: required: true type: string - NETP_START_VPN_PROVISION_PROFILE_BASE64: - required: true - type: string - NETP_STOP_VPN_PROVISION_PROFILE_BASE64: - required: true - type: string - NETP_ENABLE_ON_DEMAND_PROVISION_PROFILE_BASE64: - required: true - type: string access-token: description: "Asana access token" required: true @@ -70,9 +61,6 @@ runs: NETP_AGENT_REVIEW_PP_PATH=$RUNNER_TEMP/netp_agent_review_pp.provisionprofile NETP_NOTIFICATIONS_RELEASE_PP_PATH=$RUNNER_TEMP/netp_notifications_release_pp.provisionprofile NETP_NOTIFICATIONS_REVIEW_PP_PATH=$RUNNER_TEMP/netp_notifications_review_pp.provisionprofile - NETP_START_VPN_PP_PATH=$RUNNER_TEMP/netp_start_vpn_pp.provisionprofile - NETP_STOP_VPN_PP_PATH=$RUNNER_TEMP/netp_stop_vpn_pp.provisionprofile - NETP_ENABLE_ON_DEMAND_PP_PATH=$RUNNER_TEMP/netp_enable_on_demand_pp.provisionprofile # import certificate from secrets echo -n "${{ inputs.BUILD_CERTIFICATE_BASE64 }}" | base64 --decode -o $CERTIFICATE_PATH @@ -84,9 +72,6 @@ runs: echo -n "${{ inputs.NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64 }}" | base64 --decode -o $NETP_AGENT_REVIEW_PP_PATH echo -n "${{ inputs.NETP_NOTIFICATIONS_RELEASE_PROVISION_PROFILE_BASE64 }}" | base64 --decode -o $NETP_NOTIFICATIONS_RELEASE_PP_PATH echo -n "${{ inputs.NETP_NOTIFICATIONS_REVIEW_PROVISION_PROFILE_BASE64 }}" | base64 --decode -o $NETP_NOTIFICATIONS_REVIEW_PP_PATH - echo -n "${{ inputs.NETP_START_VPN_PROVISION_PROFILE_BASE64 }}" | base64 --decode -o $NETP_START_VPN_PP_PATH - echo -n "${{ inputs.NETP_STOP_VPN_PROVISION_PROFILE_BASE64 }}" | base64 --decode -o $NETP_STOP_VPN_PP_PATH - echo -n "${{ inputs.NETP_ENABLE_ON_DEMAND_PROVISION_PROFILE_BASE64 }}" | base64 --decode -o $NETP_ENABLE_ON_DEMAND_PP_PATH # create temporary keychain security create-keychain -p "${{ inputs.KEYCHAIN_PASSWORD }}" $KEYCHAIN_PATH @@ -107,8 +92,5 @@ runs: $NETP_AGENT_REVIEW_PP_PATH \ $NETP_NOTIFICATIONS_RELEASE_PP_PATH \ $NETP_NOTIFICATIONS_REVIEW_PP_PATH \ - $NETP_START_VPN_PP_PATH \ - $NETP_STOP_VPN_PP_PATH \ - $NETP_ENABLE_ON_DEMAND_PP_PATH \ ~/Library/MobileDevice/Provisioning\ Profiles shell: bash diff --git a/.github/workflows/build_notarized.yml b/.github/workflows/build_notarized.yml index bfea0fd9dc..5ddbc2388d 100644 --- a/.github/workflows/build_notarized.yml +++ b/.github/workflows/build_notarized.yml @@ -49,24 +49,18 @@ on: required: true RELEASE_PROVISION_PROFILE_BASE64: required: true - NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64: + NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64_V2: required: true - NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64: + NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64_V2: required: true - NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64: + NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64_V2: required: true - NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64: + NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64_V2: required: true NETP_NOTIFICATIONS_RELEASE_PROVISION_PROFILE_BASE64: required: true NETP_NOTIFICATIONS_REVIEW_PROVISION_PROFILE_BASE64: required: true - NETP_START_VPN_PROVISION_PROFILE_BASE64: - required: true - NETP_STOP_VPN_PROVISION_PROFILE_BASE64: - required: true - NETP_ENABLE_ON_DEMAND_PROVISION_PROFILE_BASE64: - required: true SSH_PRIVATE_KEY_FIND_IN_PAGE: required: true APPLE_API_KEY_BASE64: @@ -121,15 +115,12 @@ jobs: KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.REVIEW_PROVISION_PROFILE_BASE64 }} RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.RELEASE_PROVISION_PROFILE_BASE64 }} - NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64 }} - NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64 }} - NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64 }} - NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64 }} + NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64_V2 }} + NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64_V2 }} + NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64_V2 }} + NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64_V2 }} NETP_NOTIFICATIONS_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_NOTIFICATIONS_RELEASE_PROVISION_PROFILE_BASE64 }} NETP_NOTIFICATIONS_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_NOTIFICATIONS_REVIEW_PROVISION_PROFILE_BASE64 }} - NETP_START_VPN_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_START_VPN_PROVISION_PROFILE_BASE64 }} - NETP_STOP_VPN_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_STOP_VPN_PROVISION_PROFILE_BASE64 }} - NETP_ENABLE_ON_DEMAND_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_ENABLE_ON_DEMAND_PROVISION_PROFILE_BASE64 }} - name: Install xcbeautify if: runner.debug != '1' diff --git a/.github/workflows/create_variants.yml b/.github/workflows/create_variants.yml index 0b65c2d89a..758627690d 100644 --- a/.github/workflows/create_variants.yml +++ b/.github/workflows/create_variants.yml @@ -70,15 +70,12 @@ jobs: KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.REVIEW_PROVISION_PROFILE_BASE64 }} RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.RELEASE_PROVISION_PROFILE_BASE64 }} - NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64 }} - NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64 }} - NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64 }} - NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64 }} + NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64_V2 }} + NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64_V2 }} + NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64_V2 }} + NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64_V2 }} NETP_NOTIFICATIONS_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_NOTIFICATIONS_RELEASE_PROVISION_PROFILE_BASE64 }} NETP_NOTIFICATIONS_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_NOTIFICATIONS_REVIEW_PROVISION_PROFILE_BASE64 }} - NETP_START_VPN_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_START_VPN_PROVISION_PROFILE_BASE64 }} - NETP_STOP_VPN_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_STOP_VPN_PROVISION_PROFILE_BASE64 }} - NETP_ENABLE_ON_DEMAND_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_ENABLE_ON_DEMAND_PROVISION_PROFILE_BASE64 }} - name: Set up variant working-directory: ${{ github.workspace }}/dmg diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index e710bebb36..75e1cc8cd1 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -236,15 +236,12 @@ jobs: KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.REVIEW_PROVISION_PROFILE_BASE64 }} RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.RELEASE_PROVISION_PROFILE_BASE64 }} - NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64 }} - NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64 }} - NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64 }} - NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64 }} + NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64_V2 }} + NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64_V2 }} + NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64_V2 }} + NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64_V2 }} NETP_NOTIFICATIONS_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_NOTIFICATIONS_RELEASE_PROVISION_PROFILE_BASE64 }} NETP_NOTIFICATIONS_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_NOTIFICATIONS_REVIEW_PROVISION_PROFILE_BASE64 }} - NETP_START_VPN_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_START_VPN_PROVISION_PROFILE_BASE64 }} - NETP_STOP_VPN_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_STOP_VPN_PROVISION_PROFILE_BASE64 }} - NETP_ENABLE_ON_DEMAND_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_ENABLE_ON_DEMAND_PROVISION_PROFILE_BASE64 }} - name: Set cache key hash run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2033f2ce9f..41b5fffa3c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,15 +23,12 @@ jobs: KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.REVIEW_PROVISION_PROFILE_BASE64 }} RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.RELEASE_PROVISION_PROFILE_BASE64 }} - NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64 }} - NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64 }} - NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64 }} - NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64 }} + NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64_V2: ${{ secrets.NETP_SYSEX_RELEASE_PROVISION_PROFILE_BASE64_V2 }} + NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64_V2: ${{ secrets.NETP_SYSEX_REVIEW_PROVISION_PROFILE_BASE64_V2 }} + NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64_V2: ${{ secrets.NETP_AGENT_RELEASE_PROVISION_PROFILE_BASE64_V2 }} + NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64_V2: ${{ secrets.NETP_AGENT_REVIEW_PROVISION_PROFILE_BASE64_V2 }} NETP_NOTIFICATIONS_RELEASE_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_NOTIFICATIONS_RELEASE_PROVISION_PROFILE_BASE64 }} NETP_NOTIFICATIONS_REVIEW_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_NOTIFICATIONS_REVIEW_PROVISION_PROFILE_BASE64 }} - NETP_START_VPN_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_START_VPN_PROVISION_PROFILE_BASE64 }} - NETP_STOP_VPN_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_STOP_VPN_PROVISION_PROFILE_BASE64 }} - NETP_ENABLE_ON_DEMAND_PROVISION_PROFILE_BASE64: ${{ secrets.NETP_ENABLE_ON_DEMAND_PROVISION_PROFILE_BASE64 }} SSH_PRIVATE_KEY_FIND_IN_PAGE: ${{ secrets.SSH_PRIVATE_KEY_FIND_IN_PAGE }} APPLE_API_KEY_BASE64: ${{ secrets.APPLE_API_KEY_BASE64 }} APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }} diff --git a/Configuration/App/NetworkProtection/DuckDuckGoVPN.xcconfig b/Configuration/App/NetworkProtection/DuckDuckGoVPN.xcconfig index 3d6939ea6b..f464da1499 100644 --- a/Configuration/App/NetworkProtection/DuckDuckGoVPN.xcconfig +++ b/Configuration/App/NetworkProtection/DuckDuckGoVPN.xcconfig @@ -45,8 +45,8 @@ CODE_SIGN_IDENTITY[config=CI][sdk=macosx*] = PRODUCT_NAME = $(AGENT_PRODUCT_NAME) PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*] = -PROVISIONING_PROFILE_SPECIFIER[config=Review][sdk=macosx*] = macOS Network Protection Agent App Product Review -PROVISIONING_PROFILE_SPECIFIER[config=Release][sdk=macosx*] = macOS Network Protection Agent App (Distribution) +PROVISIONING_PROFILE_SPECIFIER[config=Review][sdk=macosx*] = macOS NetP VPN App - Review (XPC) +PROVISIONING_PROFILE_SPECIFIER[config=Release][sdk=macosx*] = macOS NetP VPN App - Release (XPC) FEATURE_FLAGS[arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_PROTECTION FEATURE_FLAGS[config=CI][arch=*][sdk=*] = NETP_SYSTEM_EXTENSION NETWORK_PROTECTION diff --git a/Configuration/Extensions/NetworkProtection/NetworkProtectionSystemExtension.xcconfig b/Configuration/Extensions/NetworkProtection/NetworkProtectionSystemExtension.xcconfig index c77572a2fa..e180392ed7 100644 --- a/Configuration/Extensions/NetworkProtection/NetworkProtectionSystemExtension.xcconfig +++ b/Configuration/Extensions/NetworkProtection/NetworkProtectionSystemExtension.xcconfig @@ -49,8 +49,8 @@ PRODUCT_NAME[config=Release][sdk=*] = $(SYSEX_BUNDLE_ID) PRODUCT_NAME[config=Review][sdk=*] = $(SYSEX_BUNDLE_ID) PROVISIONING_PROFILE_SPECIFIER[config=CI][sdk=macosx*] = -PROVISIONING_PROFILE_SPECIFIER[config=Release][sdk=macosx*] = macOS NetP System Extension - Release -PROVISIONING_PROFILE_SPECIFIER[config=Review][sdk=macosx*] = macOS NetP System Extension - Review +PROVISIONING_PROFILE_SPECIFIER[config=Release][sdk=macosx*] = macOS NetP VPN SysEx - Review (XPC) +PROVISIONING_PROFILE_SPECIFIER[config=Review][sdk=macosx*] = macOS NetP VPN SysEx - Release (XPC) SDKROOT = macosx SKIP_INSTALL = YES diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index b84e9cb583..0ffb84bc18 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -13347,8 +13347,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 4B4D604F2A0B293C00BCD287 /* NetworkProtectionSystemExtension.xcconfig */; buildSettings = { - "DEVELOPMENT_TEAM[sdk=macosx*]" = HKE973VLUW; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "macOS NetP VPN SysEx - Release (XPC)"; }; name = Release; }; @@ -13356,8 +13354,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 4B4D604F2A0B293C00BCD287 /* NetworkProtectionSystemExtension.xcconfig */; buildSettings = { - "DEVELOPMENT_TEAM[sdk=macosx*]" = HKE973VLUW; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "macOS NetP VPN SysEx - Review (XPC)"; }; name = Review; }; @@ -13379,8 +13375,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 7BA7CC0C2AD11D1E0042E5CE /* DuckDuckGoVPN.xcconfig */; buildSettings = { - "DEVELOPMENT_TEAM[sdk=macosx*]" = HKE973VLUW; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "macOS NetP VPN App - Release (XPC)"; }; name = Release; }; @@ -13388,8 +13382,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 7BA7CC0C2AD11D1E0042E5CE /* DuckDuckGoVPN.xcconfig */; buildSettings = { - "DEVELOPMENT_TEAM[sdk=macosx*]" = HKE973VLUW; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "macOS Network Protection VPN - Review"; }; name = Review; }; diff --git a/scripts/assets/ExportOptions.plist b/scripts/assets/ExportOptions.plist index e44b4b5089..ac199e54dd 100644 --- a/scripts/assets/ExportOptions.plist +++ b/scripts/assets/ExportOptions.plist @@ -18,14 +18,14 @@ Sandbox MacOS Browser Release com.duckduckgo.mobile.ios.review Sandbox MacOS Browser Product Review - com.duckduckgo.macos.browser.network-protection-extension - macOS NetP System Extension - Release - com.duckduckgo.macos.browser.review.network-protection-extension - macOS NetP System Extension - Review - HKE973VLUW.com.duckduckgo.macos.browser.network-protection.system-extension.agent - macOS Network Protection Agent App (Distribution) - HKE973VLUW.com.duckduckgo.macos.browser.network-protection.system-extension.agent.review - macOS Network Protection Agent App Product Review + com.duckduckgo.macos.vpn.network-extension + macOS NetP VPN SysEx - Release (XPC) + com.duckduckgo.macos.vpn.network-extension.review + macOS NetP VPN SysEx - Review (XPC) + com.duckduckgo.macos.vpn + macOS NetP VPN App - Release (XPC) + com.duckduckgo.macos.vpn.review + macOS NetP VPN App - Review (XPC) HKE973VLUW.com.duckduckgo.macos.browser.network-protection.notifications Mac Browser NetP Developer ID Not. (Distribution) HKE973VLUW.com.duckduckgo.macos.browser.network-protection.notifications.review