diff --git a/punchnet/Core/VPNManager.swift b/punchnet/Core/VPNManager.swift index a3a37bc..2e6302c 100644 --- a/punchnet/Core/VPNManager.swift +++ b/punchnet/Core/VPNManager.swift @@ -127,7 +127,16 @@ class VPNManager { let env = SystemConfig.getCurrentEnvConfig() - let manager = managers.first ?? NETunnelProviderManager() + for manager in managers { + guard let protocolConfiguration = manager.protocolConfiguration as? NETunnelProviderProtocol, + protocolConfiguration.providerBundleIdentifier == env.tunBundleId else { + try await manager.removeFromPreferences() + continue + } + } + + let managersAfterCleanup = try await NETunnelProviderManager.loadAllFromPreferences() + let manager = managersAfterCleanup.first ?? NETunnelProviderManager() manager.localizedDescription = env.localizedDescription manager.isEnabled = true