Я реализую 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
, который запускается немедленно?