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

10 iphone debugging macos ios

我正在使用Console来调试iPhone 7

  • 我看到<private>了大多数信息.我能够访问没有显示的Xcode模拟器iPhone 7设备<private>.但是我需要在手机上调试passkit传递.

我认为我的设备开发证书是钥匙串 - 我是傻吗?

如何通过访问完整信息来调试真正的iPhone?

The*_*ght 15

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

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

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

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

os_log(logger, "Some string: %s", "text that will display <private>")
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

sudo log config --mode "private_data:on"
Run Code Online (Sandbox Code Playgroud)

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

  • 好的,所以我相信这个命令只适用于macOS应用程序 (3认同)
  • 那`sudo log config --mode "private_data:on"` 对你有用吗?我还需要调试一些 Apple 的进程日志,例如 `apsd` 而这个 `&lt;private&gt;` 使它变得更加困难。 (2认同)