ios - Apple iPhone - 使用控制台调试 - <private>?

标签 ios iphone macos debugging oslog

我正在使用控制台调试 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/

相关文章:

ios - 我不明白为什么这个 @selector 不起作用

如果方向改变,ios 处理parentViews

iphone - 调用文本字段中提到的号码

ios - 这些链接在 iphone 上不起作用

cocoa - 全局禁用 cmd+tab 应用程序切换器

ios - 每次打开我的项目时,Xcode 都会意外退出

objective-c - XCode 4.2 为什么我在 .h 和 .m 文件中看到 @interface

android - 将 native ios/Android 代码导入 Xamarin 项目

iphone - 如果在添加注释时缩放,MKMapView 会崩溃

macos - 减慢 macOS 上所有 UI 动画的速度