16

我正在使用控制台调试 iPhone 7

  • <private>在大多数信息上都看到了。我能够访问不显示的 Xcode 模拟器 iPhone 7 设备<private>。但是我需要在手机上调试 passkit 通行证。

我认为我的设备开发证书在钥匙串中-我是愚蠢的吗?

您如何调试真正的 iPhone 并访问完整信息?

4

2 回答 2

37

详细信息来自Apple 的统一日志记录。如果调试消息是动态字符串,默认情况下<private>会显示。

为了使数据打印出实际的字符串,必须public在发送到日志记录时声明该字符串。例如,在 Swift 中,这将显示发送到记录器的文本,因为它是一个静态字符串:

static let logger = OSLog(subsystem: "com.company.myApp", category: "myCategory")
os_log(logger, "Some text that will display correctly");

但是,这将显示Some string: <private>

os_log(logger, "Some string: %s", "text that will display <private>")

为了使文本按预期显示,需要使用public标记声明:

os_log(logger, "Some string: %{public}s", "text that will display as expected")

如果您只是查看 3rd 方应用程序的日志,那么默认情况下您将无法查看数据。

但是,有一些报告说可以使用log命令行实用程序查看编辑数据:

sudo log config --mode "private_data:on"

据我所知,Apple 没有记录这一点。

后卡塔利娜

请注意,由于 Catalina 的引入,上述未记录的开关被破坏了。但是,现在可以使用简单的签名配置文件来显示“私人”消息,正如 Howard Oakley 所记录的,这里

于 2017-08-30T10:23:26.640 回答
2

没有一个设置可以像 macOS 那样更改 iOS 日志记录。

如果您运行的是 iOS 的 beta 版本,似乎会收集私人日志信息,因此这是一种选择。

另一个选项是查看此页面上是否有包含您需要的日志记录的配置文件。

安装相关配置文件后,您将<private>在 iOS 控制台日志中看到先前的信息。

在我的情况下,我能够在使用 CallKit 扩展程序时使用“基带”配置文件来启用来电显示记录。

要禁用私人日志记录,您只需从设备的常规设置中删除配置文件。

于 2018-09-21T08:07:37.420 回答