Операторы печати представления расширения сети

Я реализую 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, но не знаю, где это увидеть. До сих пор я просмотрел журналы:

  1. Приставка
  2. Окно > Устройства и симуляторы > Просмотр журналов устройств

Ни один из них не показывает журналы из расширения. Проблема в том, что расширение, похоже, дает сбой, прежде чем я могу подключиться к запущенному процессу, поэтому у меня такое чувство, что я просто «пропустил» этот журнал, потому что не могу достаточно быстро подключиться.

Короткий вопрос

Как я могу подключиться к работающему сетевому расширению достаточно быстро, чтобы не пропустить NSLog, который запускается немедленно?


person wheresmycookie    schedule 16.06.2019    source источник


Ответы (1)


Журналы из сетевых расширений не попадают в консоль Xcode. чтобы просмотреть журналы расширения сети, выполните следующие действия.

  1. Откройте консольное приложение.

  2. Выберите свое устройство iOS, на котором запущено сетевое расширение, и вы увидите все журналы с вашего устройства.

  3. Отфильтруйте журналы по целевому имени сетевого расширения, теперь вы будете видеть журналы только из своего сетевого расширения.

Как достаточно быстро подключиться к работающему расширению сети?

То, что я делал для решения этой проблемы, заключалось в том, чтобы перевести поток в спящий режим прямо перед оператором журнала.

sleep(60)

Это даст вам достаточно времени, чтобы подключить процесс Network Extension для отладки.

person Imran    schedule 19.11.2019