Я создаю VPN-соединение в Swift с правилом подключения по требованию ниже:
let config = NEVPNProtocolIPSec()
config.serverAddress = ""
config.username = ""
config.passwordReference = ""
config.authenticationMethod = .sharedSecret
config.sharedSecretReference = ""
config.useExtendedAuthentication = true
config.disconnectOnSleep = true
let connectRule = NEOnDemandRuleConnect()
connectRule.interfaceTypeMatch = .any
vpnManager.onDemandRules = [connectRule]
vpnManager.protocolConfiguration = config
vpnManager.localizedDescription = ""
vpnManager.isOnDemandEnabled = true
vpnManager.isEnabled = true
Это соединение работает нормально. Если я использую WiFi, он снова подключается после отключения от WiFi, но не наоборот. Если я использую сотовую связь и пытаюсь активировать WiFi, телефон не подключается к WiFi, пока я не отключу его вручную. Я считаю, что активные блоки VPN-подключения переключаются с 4G на WiFi.
Как я могу решить эту проблему?