网络扩展视图打印语句

时间:2019-06-16 10:21:31

标签: ios ios-extensions

我正在实现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

1 个答案:

答案 0 :(得分:0)

来自网络扩展的日志不会转到Xcode控制台。要查看来自网络扩展的日志,您必须按照以下步骤进行操作。

  1. 打开控制台应用程序。

  2. 选择运行网络扩展的iOS设备,您将看到设备中的所有日志。

  3. 按网络扩展目标名称过滤日志,现在您将只看到来自网络扩展的日志。

我如何足够快地连接到正在运行的网络扩展?

我一直在解决此问题的方法是,在日志语句之前将线程置于睡眠状态。

sleep(60)

它将为您提供足够的时间来附加网络扩展程序以进行调试。