Я реализую NEPacketTunnelProvider
и загружаю его из моего контроллера представления, используя:
var vpnManager: NETunnelProviderManager = NETunnelProviderManager()
...
let providerProtocol = NETunnelProviderProtocol()
providerProtocol.providerBundleIdentifier = "AA.BB.CC"
providerProtocol.serverAddress = "<something>"
...
self.vpnManager.localizedDescription = "My app"
self.vpnManager.protocolConfiguration = providerProtocol
self.vpnManager.isEnabled = true
self.vpnManager.connection.startVPNTunnel()
Детали, отмеченные знаком "...", кажутся неактуальными.
Мое понимание (хотя этона самом деле не ясно в документации), что когда я делаю это, и у меня есть цель, которая была создана как тип "NetworkExtension" с BundleId AA.BB.CC
, расширение будет загружено и выполнено правильно.Итак, я понимаю, что startTunnel
(из NEPacketTunnelProvider
) будет неявно вызываться из вышеприведенного блока кода.
Я поставил NSLog("STARTING TUNNEL!!!!!")
прямо в начале метода startTunnel
, но яне уверен, где это увидеть.До сих пор я просматривал журналы в:
- Консоль
- Окно> Устройства и симуляторы> Просмотр журналов устройств
Ни один из них не отображаетсяжурналы изнутри расширения.Проблема в том, что расширение кажется сбойным до того, как я могу присоединиться к запущенному процессу, поэтому у меня возникает ощущение, что я просто «пропускаю» этот журнал, потому что не могу присоединиться достаточно быстро.
Короткий вопрос
Как я могу подключиться к работающему сетевому расширению достаточно быстро, чтобы я не пропустил NSLog
, который запускается немедленно?