Правила NetworkExtension connectOnDemand не работают

У меня есть приложение с настройкой VPN, созданное новой инфраструктурой NetworkExtension. Это работает просто отлично, но теперь мне нужно добавить некоторые правила, чтобы включить эту VPN, только когда я пытаюсь подключиться к определенному URL. Я планировал использовать функцию connectOnDemand в NEVPNManager, но она, похоже, не работает для меня. Когда я открываюhttp://some-site.com в сафари мое VPN-соединение должно устанавливаться, но по какой-то причине этого не происходит. Я попытался использовать другой тип конфигураций, а также использовать сгенерированные файлы .mobileconfig для работы connectOnDemand, но безуспешно. Что с этим не так? Я тестирую код, подобный этому:

let manager = NEVPNManager.sharedManager()

manager.enabled = true

manager.loadFromPreferencesWithCompletionHandler { (err) -> Void in
    manager.removeFromPreferencesWithCompletionHandler { (err0) -> Void in
                print("err0 \(err0)")
                print("err \(err)")
                let config = NEVPNProtocolIPSec()
                config.localIdentifier = "NEVPNProtocolIPSec"
                config.remoteIdentifier = "NEVPNProtocolIPSecRemote"
                config.disconnectOnSleep = true
                config.serverAddress = server
                config.authenticationMethod = .Certificate
                //configurating here
                manager.protocolConfiguration = config
                let onDemandRule1 = NEOnDemandRuleConnect()
                onDemandRule1.DNSSearchDomainMatch = ["some-site.com", "*.some-site.com"]

                manager.onDemandRules = [onDemandRule1]
                manager.onDemandEnabled = true
                manager.saveToPreferencesWithCompletionHandler({ (err2) -> Void in
                    print("err2 \(err2)")
                })
            }
        }

Ответы на вопрос(2)

Ваш ответ на вопрос