我正在使用控制台调试iPhone 7
<private>。我可以访问Xcode模拟器iPhone 7设备,它不显示<private>。但是,我需要调试电话上的passkit传递。我认为我的设备开发证书在密钥链中--我是不是很蠢?
如何调试访问完整信息的真实iPhone?
发布于 2017-08-30 10:23:26
细节来自苹果的统一日志。如果调试消息是动态字符串,默认情况下,将显示<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")如果您只是查看第三方应用程序的日志,那么默认情况下您将无法查看数据。
但是,有一些有些报告可以使用log命令行实用工具看到经过编辑的数据:
sudo log config --mode "private_data:on"据我所知,这不是苹果公司记录的。
卡塔利纳
请注意,由于引入了Catalina,上述的、无文档的开关被打破了。然而,现在可以用一个简单的、签名的配置配置文件来显示“私有”消息,正如霍华德·奥克利( Howard,这里 )所记录的那样
发布于 2018-09-21 08:07:37
对于iOS日志记录,您不能像对macOS那样更改单个设置。
如果您正在运行iOS的beta版本,则似乎收集了私有日志信息,因此这是一种选择。
另一种选择是查看此页上是否有涵盖所需日志记录的配置文件。
一旦安装了相关的配置文件,您将看到以前的<private>信息出现在iOS控制台日志中。
在我的例子中,我能够使用"Baseband“配置文件在处理CallKit扩展时启用调用者id日志。
要禁用私有日志记录,只需从设备上的常规设置中删除配置文件即可。
https://stackoverflow.com/questions/45908875
复制相似问题