我正在使用控制台调试 iPhone 7
- 我看到了
<private>
在大多数信息上。我能够访问不显示的 Xcode 模拟器 iPhone 7 设备<private>
.但是我需要在手机上调试 passkit pass。
我认为我的设备开发证书在钥匙串(keychain)中 - 我是不是很傻?
如何调试可以访问完整信息的真实 iPhone?
最佳答案
详情来自Apple's Unified logging .
如果调试消息是动态字符串,默认情况下为 <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")
如果您只是查看第 3 方应用程序的日志,那么默认情况下您将无法查看数据。
但是,有some that report可以使用 log
查看编辑后的数据命令行实用程序:
sudo log config --mode "private_data:on"
据我所知,Apple 没有对此进行记录。
后卡特琳娜
请注意,上述未记录的开关随着 Catalina 的引入而被破坏。但是,现在可以使用简单的签名配置文件来显示“私有(private)”消息,如 Howard Oakley 所述,here
关于ios - Apple iPhone - 使用控制台调试 - <private>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45908875/